コマンドライン経由でMac上のファイルを暗号化および復号化する簡単な組み込み方法は?


39

テキストファイルを暗号化および復号化(および何らかのパスワードを提供)できる組み込みのコマンドラインツールはありますか。


Built in = Macに付属、プリインストールされていますか?
wizlog

回答:


52

openssl Mac OS Xにプリインストールされています。

次のコマンドを使用できます。

# encrypt file.txt to file.enc using 256-bit AES in CBC mode
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

# the same, only the output is base64 encoded for, e.g., e-mail
openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc

# decrypt binary file.enc
openssl enc -d -aes-256-cbc -in file.enc -out file.txt

# decrypt base64-encoded version
openssl enc -d -aes-256-cbc -a -in file.enc -out file.txt

OpenSSL Command-Line HOWTOからコピー:ファイルを単に暗号化するにはどうすればよいですか?

これらのコマンドは、暗号ブロックチェーン(CBC)を使用した256ビットのAES暗号化を使用します。


1
パスワードはどこに入力しますか?
12

3
上記のopensslコマンドのいずれかを実行すると、が求められますenter aes-256-cbc encryption password
デニス

1
@codecompletingまたは、を指定します-pass pass:MYSECRETPASSWORD。ただし、パスワードはもちろんから非表示になりませんpsなど
Acumenus 14年

2
@Wildcardはい、ソルト(実際には初期化ベクトル)は暗号化されたファイルに暗号文とともに保存されます。
デニス

1
@KolobCanyon暗号化は決して損失がありません。定義により、暗号文を解読して元の平文を復元できることが必要です。キーを忘れないでください。
デニス

6

そのためのシェルスクリプトを作成しました。MacまたはLinuxで使用できます。

#!/bin/bash
#encrypt files with aes-256-cbc cipher using openssl

#encrypt files
if [ $1 == "-e" ];
then
    if [ -f "$2" ];
    then
    openssl aes-256-cbc -a -e -salt -in "$2" -out "$2.aes"
    else
       echo "This file does not exist!" 
    fi
#decrypt files
elif [ $1 == "-d" ];
then
    if [ -f "$2" ];
    then
        openssl aes-256-cbc -a -d -salt -in "$2" -out "$2.decrypt"
    else
        echo "This file does not exist!" 
    fi
#show help
elif [ $1 == "--help" ];
then
    echo "This software uses openssl for encrypting files with the aes-256-cbc cipher"
    echo "Usage for encrypting: ./encrypt -e [file]"
    echo "Usage for decrypting: ./encrypt -d [file]"
else
    echo "This action does not exist!"
    echo "Use ./encrypt --help to show help."
fi

これを発行chmod + xファイル内のテキストファイルに保存して、実行可能にします。その後、。/ filename --helpを使用して情報を取得します。


2
-a不必要に使用すると、出力ファイルが不必要に膨張します。
Acumenus 14年

5

Mac OS Xには、暗号化されたコンテナーファイル(Truecryptなど)を作成する機能があり、オプションでファイルの量に応じて成長できます。これを行うには、ディスクユーティリティを使用します。

ではディスクユーティリティを選択し、ファイル»新»空のディスクイメージ...の一つとまばらな画像フォーマット。暗号化としてAES-128またはAES-256を選択します。


コマンドラインから、hdiutilプログラムを介して同じ機能を使用できます。


コマンドラインアクセスを目的とした単一のテキストファイルでは少しやり過ぎですよね。後でLinuxなどを介してファイルを開くことができます。?
ワイルドカード

@Wildcardおそらく(スコープは変化する傾向があります); いいえ、しかし質問の一部ではありませんでした。
ダニエルベック

@ DanielBeck、Ans1と同じ出力ビット?
パセリエ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.