número mágico incorrecto al descifrar

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

  • gracias Temía que pudiera ser algo como este Estamos en una situación inusual y queremos restaurar algo tan antiguo. Lo intentaré
  • Una falta de coincidencia en el pbe-hash predeterminado (o especificar el hash incorrecto o simplemente la contraseña incorrecta) provocará un descifrado de basura que para un cifrado en modo CBC (como aquí) casi siempre ser detectado como 06065064 ' descifrado incorrecto ' – pero no como ' número mágico incorrecto '. Solo un archivo dañado, o uno cifrado con -nosalt o un OpenSSL realmente antiguo (antes de 0.9.6 como máximo) hace eso.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *