4月にコマンドを使用してファイルを暗号化しました
openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil
今、それを復号化したい
openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2
しかし、マジックナンバーが間違っています。
同じパラメータで昨日暗号化されたファイルが復号化されますわかりました。
何が起こったのでしょうか?とにかく、このアーカイブファイルを取得できますか?
回答
OpenSSLで暗号化した場合< = 1.0.2で、OpenSSL 1.1.0で復号化している場合は、おそらく次のようになります。
https://www.openssl.org/docs/faq.html#USER3
パスワードからキーを生成するために使用されるデフォルトのハッシュが1.0.2と1.1.0の間で変更されました。復号化コマンドに-md md5
を追加してみてください。
コメント
回答
以下のコマンドで問題が発生しました:
openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc decryption password: bad magic number
そして、以下のコマンドはそれを解決し、私に喜びを与えました:
openssl aes-256-cbc -md md5 -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password:
コメント
- 2番目のコマンド、復号化していない(
-d
)…
回答
このエラーの一般的な原因は、OpenSSLによってパスワードから計算されたキーが間違っていることです。つまり、データを暗号化したキーと同じではありません。
このエラーが表示される理由の1つ元の質問とは異なる状況で、OpenSSL以外のツールを使用して暗号化する場合、たとえばJavaで暗号化する場合、SSLを使用して復号化する場合です。
Javaの解決策を参照してください: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564
-nosalt
または本当に古いOpenSSL(最大で0.9.6より前)で暗号化されたファイルのみがそれを行います。