openssl コマンドでファイルを暗号化します。
ファイルを暗号化してパスワードをつけたい場合、一番お手軽なのはWindowsのExcelのパスワードですが、 一般のファイルで、ファイルにパスワードをつけたい場合は、opensslをコマンドから使うのが手軽です。
openssl コマンドでファイルを容易く暗号化出来る
ファイルを暗号化するには、とてもシンプルにopenssl を使うのが楽ですよね
ファイルの暗号化
次の例では、ファイル(test.json)を暗号化しています。 ここでは、パスワード($PLAIN_TEXT_PASS)を鍵として使います。
openssl enc -e -aes-256-cbc -salt -pbkdf2 -pass pass:$PLAIN_TEXT_PASS -in test.json -out test.json.enc
ファイルの復号化
次の例では、ファイル(test.json)を復号化しています。
openssl enc -d -aes-256-cbc -salt -pbkdf2 -pass pass:$PLAIN_TEXT_PASS -in test.json.enc -out test.json
openssl enc を使う
ファイルをAESで暗号化するには enc を使う。
openssl enc オプション
じつは、openssl はサブコマンド方式なので、次のようになっています。enc はサブコマンドの一つです。
openssl サブコマンド オプション
オプションの解説
引数 | 意味 |
---|---|
enc | 対象鍵(パスフレーズ)で暗号化・復号化 |
-e | 暗号化処理を指定 |
-d | 復号化処理を指定 |
-salt | slatを使うことでバイナリからの憶測を困難に |
-pass | パスフレーズをどこから取るか (指定なしはプロンプト ) |
パスフレーズの与え方
パスフレーズの与え方の例
よく使いそうなのは次の3つでしょうね。
プレインテキストで
openssl enc -e -aes-256-cbc -salt -pass pass:秘密秘密
環境変数から
export my_pass=秘密秘密 openssl enc -e -aes-256-cbc -salt -pass env:my_pass
ファイルから
echo 秘密秘密 > my_pass_file openssl enc -e -aes-256-cbc -salt -pass file:my_pass_file
詳しくは、openssl のPASSWORD ARGUMENTSの章を参考にすること
2018-11-26
検索キーワードにうまくマッチしないのでエントリ書き換え、。
2020-12-16
openssl が -pbkdf2 をつけないと deprecated というので追加した。
参考資料
- man enc
- man openssl