復号化のマジック番号が不正です


12

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

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

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

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

回答:


6

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

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

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


1
おかげで私はこのようなものになるのではないかと心配していました。これを試してみる
KathyHH

1
デフォルトのpbe-hashの不一致(または、間違ったハッシュまたは誤ったパスワードを指定)は、ガベージの復号化を引き起こします。これは、CBCモードの暗号(この場合)の場合、ほとんど常に06065064として検出されます。悪い魔法番号」。破損したファイル、または1つで暗号化のみ-nosaltか、本当に(せいぜい0.9.6前)古代OpenSSLはそれを行います。
dave_thompson_085

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:

6
2番目のコマンドでは、復号化していません(-d)...
dangonfast

1

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

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

Javaのソリューションはこちらを参照してください:https : //stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.