web-dev-qa-db-ja.com

復号化時の不正なマジック番号

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

しかし、私は悪いマジックナンバーを取得します。

昨日同じパラメータで暗号化されたファイルは復号化できます。

何が起こったのでしょうか?とにかく私はこのアーカイブされたファイルを取得できますか?

12
KathyHH

OpenSSL <= 1.0.2で暗号化し、OpenSSL 1.1.0で復号化している場合は、おそらく次のようになります。

https://www.openssl.org/docs/faq.html#USER

パスワードからキーを生成するために使用されるデフォルトのハッシュは、1.0.2と1.1.0の間で変更されました。復号化コマンドに-md md5を追加してみてください。

6
Matt Caswell

このエラーの一般的な原因は、パスワードからOpenSSLによって計算されたキーが間違っていることです。つまり、データを暗号化したキーと同じではありません。

元の質問とは異なる状況でこのエラーが表示される可能性がある1つの理由は、OpenSSL以外のツールを使用して暗号化している場合(Javaでの暗号化、SSLを使用した復号化など)です。

Javaの解決策はこちらをご覧ください: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-Java-decrypt-with-openssl/55884564#55884564

1

以下のコマンドは私に苦痛を与えました:

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:
1
typelogic