En avril, j'ai chiffré 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 puis-je de toute façon récupérer ce fichier archivé?
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#USER
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
sur votre commande de décryptage.
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.
L'une des raisons pour lesquelles cette erreur peut apparaître, dans une situation différente de la question d'origine, est que vous cryptez à l'aide d'un autre outil qu'OpenSSL, par exemple le cryptage en Java et le décryptage à l'aide de SSL.
Voir la solution ici pour Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-Java-decrypt-with-openssl/55884564#55884564
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: