mal número mágico en descifrar


12

En abril cifré un archivo usando 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 mal número mágico.

Un archivo encriptado ayer con los mismos parámetros descifra bien.

¿Lo que podría haber ocurrido? ¿y hay alguna forma de recuperar este archivo archivado?

Respuestas:


6

Si 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 md5a su comando de descifrado.


1
gracias. Temía que pudiera ser algo como esto. Estamos en una situación inusual queriendo restaurar algo tan viejo. Voy a intentar esto
KathyHH

1
Un desajuste en pbe-hash predeterminado (o especificando el hash incorrecto o solo la contraseña incorrecta) provocará un descifrado de basura que para un cifrado de modo CBC (como aquí) casi siempre se detectará como 06065064 'descifrado incorrecto', pero no ' mal número mágico ". Solo un archivo dañado, o uno encriptado con -nosalto un OpenSSL realmente antiguo (antes de 0.9.6 como máximo) hace eso.
dave_thompson_085

1

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:

66
En el segundo comando, no estás descifrando ( -d) ...
dangonfast

1

La causa general de este error es que la clave calculada por OpenSSL a partir de la contraseña es incorrecta, lo que significa que no es la misma que la clave que cifró los datos.

Una razón por la cual este error puede aparecer, 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: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.