En abril cifré un archivo con el comando
openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil
Ahora quiero descifrarlo con
openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2
pero obtengo un número mágico incorrecto.
Un archivo cifrado ayer con los mismos parámetros descifra ok.
¿Qué pudo haber pasado? ¿Hay alguna forma de que pueda recuperar este archivo archivado?
Responder
Si lo cifró con OpenSSL < = 1.0.2 y está descifrando con OpenSSL 1.1.0, entonces probablemente sea esto:
https://www.openssl.org/docs/faq.html#USER3
El hash predeterminado utilizado para generar la clave a partir de la contraseña cambió entre 1.0.2 y 1.1.0. Intente agregar -md md5
en su comando de descifrado.
Comentarios
Responder
El siguiente comando me dio dolor:
openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc decryption password: bad magic number
Y el siguiente comando lo resolvió y me dio placer:
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:
Comentarios
- En el segundo comando, no está descifrando (
-d
) …
Responder
La causa general de este error es que la clave calculada por OpenSSL a partir de la contraseña es incorrecta, es decir, no es la misma que la clave que cifró los datos.
Una razón por la que este error puede aparecer arriba, en una situación diferente a la pregunta original, es si está encriptando usando otra herramienta que no sea OpenSSL, por ejemplo, encriptando en Java, y desencriptando usando SSL.
Vea la solución aquí para Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564
-nosalt
o un OpenSSL realmente antiguo (antes de 0.9.6 como máximo) hace eso.