Em abril, criptografei um arquivo usando o comando
openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil
Agora eu quero descriptografá-lo com
openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2
mas recebo um número mágico ruim.
Um arquivo criptografado ontem com os mesmos parâmetros descriptografa ok.
O que poderia ter acontecido? Posso recuperar este arquivo arquivado de alguma forma?
Resposta
Se você criptografou com OpenSSL < = 1.0.2 e você está descriptografando com OpenSSL 1.1.0, então provavelmente é este:
https://www.openssl.org/docs/faq.html#USER3
O hash padrão usado para gerar a chave da senha alterada entre 1.0.2 e 1.1.0. Tente adicionar -md md5
ao seu comando de descriptografia.
Comentários
Resposta
O comando abaixo me incomodou:
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 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:
Comentários
- No segundo comando, você não está descriptografando (
-d
) …
Resposta
A causa geral desse erro é que a chave calculada pelo OpenSSL a partir da senha está errada, o que significa que não é a mesma que a chave que criptografou os dados.
Um motivo pelo qual esse erro pode ser mostrado em uma situação diferente da pergunta original, é se você está criptografando usando outra ferramenta que não OpenSSL, por exemplo, criptografar em Java e descriptografar usando SSL.
Veja a solução aqui para Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564
-nosalt
ou um OpenSSL realmente antigo (antes de 0.9.6 no máximo) faz isso.