Ad aprile ho crittografato un file utilizzando il comando
openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil
Ora voglio decrittografarlo con
openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2
ma ottengo un numero magico sbagliato.
Un file crittografato ieri con gli stessi parametri decrittografa ok.
Cosa potrebbe essere successo? e posso comunque recuperare questo file archiviato?
Risposta
Se hai crittografato con OpenSSL < = 1.0.2 e stai decrittografando con OpenSSL 1.1.0, probabilmente è questo:
https://www.openssl.org/docs/faq.html#USER3
Lhash predefinito utilizzato per generare la chiave dalla password modificata tra 1.0.2 e 1.1.0. Prova ad aggiungere -md md5
al tuo comando di decrittazione.
Commenti
Risposta
Il comando seguente mi ha dato fastidio:
openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc decryption password: bad magic number
E il comando seguente lo ha risolto e mi ha fatto piacere:
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:
Commenti
- Nel secondo comando, non stai decrittografando (
-d
) …
Risposta
La causa generale di questo errore è che la chiave calcolata da OpenSSL dalla password è sbagliata, ovvero non è la stessa della chiave che ha crittografato i dati.
Un motivo per cui questo errore può essere visualizzato in una situazione diversa dalla domanda originale, è se stai crittografando utilizzando un altro strumento diverso da OpenSSL, ad esempio crittografando in Java e decrittando utilizzando SSL.
Vedi la soluzione qui per Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564
-nosalt
o un veramente antico OpenSSL (prima della 0.9.6 al massimo) lo fa.