número mágico ruim ao descriptografar


12

Em abril, criptografei um arquivo usando o comando

openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil

Agora eu quero decifrá-lo com

openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2

mas eu recebo um número mágico ruim.

Um arquivo criptografado ontem com os mesmos parâmetros descriptografa ok.

O que pode ter acontecido? e existe alguma maneira de recuperar esse arquivo arquivado?

Respostas:


6

Se você criptografou com o OpenSSL <= 1.0.2 e está descriptografando com o OpenSSL 1.1.0, provavelmente é o seguinte:

https://www.openssl.org/docs/faq.html#USER3

O hash padrão usado para gerar a chave a partir da senha alterada entre 1.0.2 e 1.1.0. Tente adicionar -md md5ao seu comando de descriptografia.


1
obrigado. Eu estava com medo de que pudesse ser algo assim. Estamos em uma situação incomum querendo restaurar algo tão antigo. Vou tentar dar um presente
KathyHH

1
Uma incompatibilidade no pbe-hash padrão (ou especificar o hash errado ou apenas a senha errada) causará a descriptografia de lixo que, para uma cifra no modo CBC (como aqui), quase sempre será detectada como 06065064 'descriptografia incorreta' - mas não ' número mágico ruim '. Somente um arquivo danificado, criptografado -nosaltou um OpenSSL realmente antigo (antes de 0.9.6, no máximo) faz isso.
Dave_thompson_085

1

O comando abaixo me deu dor:

openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2
enter aes-256-cbc decryption password:
bad magic number

E o comando abaixo o resolveu e me deu prazer:

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:

6
No segundo comando, você não está descriptografar ( -d) ...
dangonfast

1

A causa geral desse erro é que a chave calculada pelo OpenSSL a partir da senha está incorreta, o que significa que não é a mesma que a chave que criptografou os dados.

Uma razão pela qual esse erro pode aparecer, em uma situação diferente da pergunta original, é se você estiver criptografando usando outra ferramenta que não o OpenSSL, por exemplo, criptografando em Java e descriptografando usando SSL.

Consulte a solução aqui para Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.