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
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
-nosalt
ou un vraiment ancien OpenSSL (avant la 0.9.6 au plus) le fait.