schlechte magische Zahl beim Entschlüsseln

Im April habe ich eine Datei mit dem Befehl

openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil 

Jetzt möchte ich es mit

openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2 

entschlüsseln, aber ich erhalte eine schlechte magische Zahl.

Eine gestern mit denselben Parametern verschlüsselte Datei entschlüsselt ok.

Was hätte passieren können? und kann ich diese archivierte Datei trotzdem abrufen?

Antwort

Wenn Sie mit OpenSSL verschlüsselt haben < = 1.0.2 und Sie entschlüsseln mit OpenSSL 1.1.0, dann ist es wahrscheinlich Folgendes:

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

Der Standard-Hash, der zum Generieren des Schlüssels aus dem zwischen 1.0.2 und 1.1.0 geänderten Kennwort verwendet wird. Versuchen Sie, -md md5 zu Ihrem Entschlüsselungsbefehl hinzuzufügen.

Kommentare

  • Danke, ich befürchtete, es könnte etwas sein so Wir sind in einer ungewöhnlichen Situation und wollen etwas so Altes wiederherstellen. Ich werde es versuchen
  • Eine Nichtübereinstimmung im voreingestellten pbe-Hash (oder die Angabe des falschen Hashs oder nur des falschen Passworts) führt zu einer Müllentschlüsselung, die bei einer CBC-Modus-Verschlüsselung (wie hier) fast immer auftritt erkannt werden als 06065064 ' fehlerhafte Entschlüsselung ' – aber nicht ' schlechte magische Zahl '. Dies kann nur eine beschädigte oder mit -nosalt oder einer wirklich alten OpenSSL (höchstens vor 0.9.6) verschlüsselte Datei tun.

Antwort

Der folgende Befehl hat mir Schmerzen bereitet:

openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc decryption password: bad magic number 

Und der folgende Befehl löste es und bereitete mir Freude:

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: 

Kommentare

  • In der zweiter Befehl, Sie entschlüsseln nicht (-d) …

Antwort

Die allgemeine Ursache für diesen Fehler ist, dass der von OpenSSL aus dem Kennwort berechnete Schlüssel falsch ist, was nicht mit dem Schlüssel identisch ist, der die Daten verschlüsselt hat.

Ein Grund, warum dieser Fehler auftreten kann In einer anderen Situation als der ursprünglichen Frage können Sie mit einem anderen Tool als OpenSSL verschlüsseln, z. B. mit Java verschlüsseln und mit SSL entschlüsseln.

Siehe Lösung hier für Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.