そのため、コマンドライン引数を使用してパスワードを渡すのが最も安全な方法ではありません。そうは言っても、opensslのドキュメントでは、opensslコマンドにパスワード引数を渡す方法について混乱していました。
これが私がやろうとしていることです
openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d
これにより、復号化用のパスキーの入力を求められます。パスワードをファイルにエコーするのではなく単にコマンドにパスワードを与えたいのであれば、openssl文書とinterwebsを検索して答えを探してみました。引用符の有無にかかわらず-pass:somepassword
と-pass somepassword
を追加してみましたが、役に立ちませんでした。
私はようやく答えを見つけ出し、他のフォーラムで同じような質問をしている人たちを見たので、私は自分の質問を投稿してコミュニティのためにここに答えると思いました。
注意:私はopensslバージョン0.9.8yを使っています
ドキュメンテーションは私にはあまり明確ではありませんでした、しかしそれは答えを持っていました、挑戦は例を見ることができなかったことでした。
これを行う方法は次のとおりです。
openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword
コマンドラインのコマンド構文は常に-pass
の後にスペースが続き、次に提供するパスフレーズのタイプ、つまりプレーンパスフレーズの場合はpass:
、スペースのないコロンの後の実際のパスフレーズになります。
さらに、ドキュメントには、次のようにして他のパスフレーズのソースを指定できることが記載されています。
env:somevar
pathname
にあるパスワードを取得するためのfile:somepathname
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
-passin
と-passout
を使って両方のファイルにパスワードを設定しています。
openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321
123
と321
はパスワードです。
現時点でUbuntu 14.04 LTSはopenssl 1.0.1f-1ubuntu2.16が付属しています
このバージョンでは使用するパラメータは-k
です。
例:
openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword