mauvais numéro magique sur déchiffrer

12

En avril, j'ai crypté un fichier à l'aide de la commande

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

Maintenant, je veux le décrypter avec

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

mais j'ai un mauvais numéro magique.

Un fichier chiffré hier avec les mêmes paramètres déchiffre ok.

Qu'est-ce qui aurait pu arriver? et est-il possible de récupérer ce fichier archivé?

KathyHH
la source

Réponses:

6

Si vous avez chiffré avec OpenSSL <= 1.0.2 et que vous déchiffrez avec OpenSSL 1.1.0, c'est probablement ceci:

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

Le hachage par défaut utilisé pour générer la clé à partir du mot de passe a changé entre 1.0.2 et 1.1.0. Essayez d'ajouter -md md5à votre commande de décryptage.

Matt Caswell
la source
1
merci j'avais peur que ce soit quelque chose comme ça Nous sommes dans une situation inhabituelle qui veut restaurer quelque chose d'aussi vieux. Je vais essayer
ceci
1
Une non-concordance dans le pbe-hachage par défaut (ou en spécifiant le mauvais hachage ou juste le mauvais mot de passe) entraînera un déchiffrement des ordures qui pour un chiffrement en mode CBC (comme ici) sera presque toujours détecté comme 06065064 `` mauvais déchiffrement '' - mais pas '' mauvais numéro magique ». Seul un fichier endommagé, ou chiffré avec -nosaltou un OpenSSL vraiment ancien (avant 0.9.6 tout au plus) fait cela.
dave_thompson_085
1

La commande ci-dessous m'a fait mal:

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

Et la commande ci-dessous l'a résolu et m'a fait plaisir:

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:
typelogic
la source
6
Dans la deuxième commande, vous ne déchiffrez pas ( -d) ...
dangonfast
1

La cause générale de cette erreur est que la clé calculée par OpenSSL à partir du mot de passe est incorrecte, ce qui ne signifie pas la même chose que la clé qui a chiffré les données.

Une raison pour laquelle cette erreur peut apparaître, dans une situation différente de la question d'origine, est si vous cryptez en utilisant un autre outil qu'OpenSSL, par exemple le cryptage en Java et le décryptage en utilisant SSL.

Voir la solution ici pour Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Vic Seedoubleyew
la source