AES-256を使用してファイルを暗号化します。どうすればそれを迅速かつ簡単に行うことができますか?
AES-256を使用してファイルを暗号化します。どうすればそれを迅速かつ簡単に行うことができますか?
回答:
残念ながら、あなたのものを保護する簡単な解決策はありません。ユースケースについて考えてみてください。おそらく、単純なAES以外のものが適しています。
プラットフォームに依存しない非常に単純な暗号化が必要な場合は、opensslを使用できます。
まだopensslを使用したい場合:
暗号化:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
復号化:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
暗号化と復号化の両方でスイッチをbase64
使用すると、opensslでメッセージをエンコードできます-a
。この方法で、たとえば、暗号文を電子メールメッセージに貼り付けることができます。次のようになります。
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
暗号と動作モードを選択できることに注意してください。通常の使用では、CBCモードのaes 256をお勧めします。使用可能な暗号モードは次のとおりです(AESのカウントのみ)。
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
こちらもご覧ください:
ご注意ください:
OpenSSLはパスワードを要求します。これは暗号化キーではなく、32バイトに制限されていません!他の人とファイルを転送する場合、共有秘密は非常に強力なはずです。このサイトを使用して、パスワードがどれだけ優れているかを把握できます。
警告:これらのサイトがパスワードをサーバーに送信しないことを確認しましたが、いつでも変更できます。これらのサイトを開発ツール/インスペクターで使用し、強力なパスワードを入力する前にそれらが送信するかどうかを確認します。
/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
します。期待どおりの逆です。
openssl enc
パスワードが弱い場合、実際にはそれほど安全ではないことを付け加えます。以前はの特定の使用をお勧めしていましたが、より良い方法でKDF openssl enc
を使用gpg
するため、代わりに使用することをお勧めします。この回答をご覧ください。
私はgpg
コマンドを使用したい:
暗号化:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
速記:
gpg --cipher-algo AES256 -c filename.tar.gz
これはパスフレーズを要求します。
復号化:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
速記:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
に追加cipher-algo AES256
し~/.gnupg/gpg.conf
て、AES256をデフォルトにすることもできます。(マンページによると、CAST5です)
AES
(AES-128を意味する)も使用できます。AES-128はわずかに高速であり、安全性も劣りません。
gpg
パスワードのキャッシュを防ぐにはどうすればよいですか?
リンクされたWebサイトには、オープンソースの256ビットaes暗号化/復号化ツールが含まれており、MacO、Windows、Linuxなど、Javaを介したマルチプラットフォームです。
暗号化: aescrypt -e <file>
復号化: aescrypt -d <file>
次の構文を使用して、ホームフォルダーをバックアップおよび暗号化できます。
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
make
sudo make install
Webサイトからバイナリまたはソースコードをダウンロードします。
私がしたであろう多くの提案は、このスレッドですでに出されていました。基本的に、opensslはファイルまたはスクリプトを暗号化する最も簡単な方法です。ただし、一部のプラットフォームのopensslのすべてのバージョンで使用できないという理由だけで、AES-256の使用には注意してください。ほとんどの新しいOS ...すなわちLinuxはそれを持っています。しかし、AIX 5.3などのその他のものはそうではありません(HP-UXも同様だと思います)。さまざまなプラットフォームでファイルまたはスクリプトを使用する場合は、AES-128をどこでも使用できるため、AES-128を使用することを強くお勧めします。
AES-128を使用してファイルを「迅速かつ簡単に」暗号化するにはどうすればよいですか?
www.ShellScrypt.comのようなサイトでは、openssl AES-128を使用してシェルスクリプトを暗号化し、スクリプトの暗号化されたコピーを実行可能にします。スクリプトをサイトに貼り付けるだけで、zipファイルが生成されます。そのzipファイルには、暗号化された(およびスクリプトの場合は実行可能な)バージョンのファイルが含まれます。これにより、スクリプトを使用するすべてのシステムでパッケージまたはモジュールの要件を満たしたり、opensslコマンドの複雑で混乱した呪文を実行したりすることなく、ファイル/スクリプトを「簡単」および「便利」に暗号化できます。
AES-128を使用する opensslコマンドの基本的な暗号化/復号化を次に示します。
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
Stefano Palazzoの答えに加えて、base64コマンドと同様に機能する小さなbash関数を作成しました。
ファイルをaes256暗号化してから、base64でエンコードします。逆にすると、元のプレーンテキストをbase64でデコード、復号化、および吐き出します。
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
使用法:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
openssl aes-256-cbc
より短くopenssl enc -aes-256-cbc
、機能します。これのマニュアルページは、を実行することで利用できますman enc
。ecb
テンパリングしないデータには使用しないで、常にを使用しますcbc
。-salt
デフォルトなので冗長です。-out filename
出力を省略すると、データを分析するだけでディスクに書き込む必要がない場合に便利な標準出力に書き込まれます。次のコマンドは、平文の行を表示します:openssl aes-256-cbc -d -in filename | wc -l
。(別の使用、ファイルの読み取り:openssl aes-256-cbc -d -in filename | less
)