schlechte magische Zahl beim Entschlüsseln

12

Im April habe ich eine Datei mit dem Befehl verschlüsselt

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

Jetzt möchte ich es mit entschlüsseln

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

aber ich bekomme eine schlechte magische Zahl.

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

Was könnte passiert sein? und kann ich diese archivierte Datei trotzdem abrufen?

KathyHH
quelle

Antworten:

6

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

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 md5Ihren Entschlüsselungsbefehl zu erweitern.

Matt Caswell
quelle
1
danke Ich hatte Angst, es könnte so etwas sein. Wir sind in einer ungewöhnlichen Situation und wollen etwas so Altes wiederherstellen. Ich werde es versuchen
KathyHH
1
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 Verschlüsselung im CBC-Modus (wie hier) fast immer als 06065064 'fehlerhafte Entschlüsselung' erkannt wird - aber nicht ' schlechte magische Zahl '. Dies geschieht nur durch eine beschädigte oder mit -nosaltoder einer wirklich alten OpenSSL verschlüsselte Datei (höchstens vor 0.9.6).
Dave_thompson_085
1

Der Befehl unten bereitete mir Schmerzen:

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:
typelogisch
quelle
6
Im zweiten Befehl entschlüsseln Sie nicht ( -d) ...
dangonfast
1

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

Ein Grund, warum dieser Fehler in einer anderen Situation als der ursprünglichen Frage auftreten kann, besteht darin, dass 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: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Vic Seedoubleyew
quelle