linux – 復号化のためにopensslにコマンドラインを介してパスワード引数を使用する方法

command-line linux openssl

ですから、コマンドラインの引数でパスワードを渡すのは最も安全な方法ではありません。そうは言っても、opensslのドキュメントでは、opensslコマンドにパスワードの引数を渡す方法が混乱してしまいました

私がやろうとしていることはこんな感じです

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

すると、復号化のためのパスキーを要求してきます。パスワードをファイルにエコーさせずに、単にパスワードをコマンドに渡すだけでいいのか、opensslのドキュメントやウェブを検索してみました。-pass:somepassword-pass somepassword を引用符付きと引用符なしの両方で追加してみましたが、効果はありませんでした

私は最終的に答えを見つけ出し、いくつかの他のフォーラムで人々が同じような質問をしていたのを見たので、私はコミュニティのためにここに私の質問と答えを投稿しようと思いました

note: 私はopensslのバージョン0.9.8yを使用しています

  74  David Sulpy  2014-03-05


ベストアンサー

ドキュメントは私にはあまりわかりませんでしたが、答えが出ていて、例を見られないことが課題でした

その方法をご紹介します

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword

コマンドラインコマンドの構文は常に -pass の後にスペースが続き、パスフレーズの種類を指定することに注意してください

さらに、ドキュメントでは、以下のようにして他のパスフレーズソースを提供することができることが明記されています

  • env:somevarで環境変数からパスワードを取得します
  • file:somepathnameで、ファイルの最初の行からpathnameの場所にあるパスワードを取得します
  • fd:numberでファイルディスクリプター番号からパスワードを取得します
  • stdinで標準入力から読み込む

今、私はこの質問と答えを書いたので、それはすべて明らかに思える。しかし、それは確かに把握するためにいくつかの時間がかかり、私はそれが他の人に同じような時間がかかるのを見てきましたので、うまくいけば、これがその時間を短縮し、他の人のために速く答えることができることを願っています:)

OpenSSL 1.0.1e では、使用するパラメータは -passin または -passout です。ですから、この例は次のようになります

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword

138  David Sulpy  2014-03-05


例では-passin-passoutを使って両方のファイルにパスワードを設定しました

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

ここで、123321はパスワードです

14  Mikhailo Karpenko  2019-01-24


この時点でUbuntu 14.04 LTSは、openssl 1.0.1f-1ubuntu2.16が付属しています

このバージョンでは、使用するパラメータは-kです

Example:

openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword

6  Javier  2015-12-27


タイトルとURLをコピーしました