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