復号化時の不正なマジックナンバー

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を追加してみてください。

コメント

  • 何かかもしれないと思っていましたこのように私たちは、これほど古いものを復元したいと思っている珍しい状況にあります。これを試してみます
  • デフォルトのpbe-hashの不一致(または間違ったハッシュまたは間違ったパスワードの指定)により、ガベージ復号化が発生し、CBCモード暗号(ここにあるように)の場合、ほとんどの場合06065064 '不正な復号化'として検出されますが'不正なマジックナンバー'。破損したファイル、または-nosaltまたは本当に古いOpenSSL(最大で0.9.6より前)で暗号化されたファイルのみがそれを行います。

回答

以下のコマンドで問題が発生しました:

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です