mauvais nombre magique lors du déchiffrement

En avril, jai chiffré un fichier à laide de la commande

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

Maintenant je veux le déchiffrer avec

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

mais jobtiens un mauvais nombre magique.

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

Quest-ce qui aurait pu arriver? et est-ce que je peux de toute façon récupérer ce fichier archivé?

Réponse

Si vous avez chiffré avec OpenSSL < = 1.0.2 et que vous décryptez avec OpenSSL 1.1.0 alors cest 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 changé entre 1.0.2 et 1.1.0. Essayez dajouter -md md5 à votre commande de déchiffrement.

Commentaires

  • merci javais peur que ce soit quelque chose comme ça Nous sommes dans une situation inhabituelle voulant restaurer quelque chose daussi ancien. Je vais essayer
  • Une incompatibilité dans pbe-hash par défaut (ou en spécifiant le mauvais hachage ou tout simplement le mauvais mot de passe) provoquera un déchiffrement des ordures qui pour un chiffrement en mode CBC (comme ici) sera presque toujours être détecté comme 06065064 ' mauvais décryptage ' – mais pas ' mauvais nombre magique '. Seul un fichier endommagé, ou chiffré avec -nosalt ou un vraiment ancien OpenSSL (avant la 0.9.6 au plus) le fait.

Réponse

La commande ci-dessous ma 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 la résolu, et ma 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: 

Commentaires

  • Dans le deuxième commande, vous ne décryptez pas (-d) …

Réponse

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

Une des raisons pour lesquelles cette erreur peut apparaître up, dans une situation différente de la question dorigine, est si vous cryptez en utilisant un autre outil quOpenSSL, par exemple crypter en Java, et décrypter en utilisant SSL.

Voir la solution ici pour Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *