numero magico errato su decifrare

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

  • grazie avevo paura che potesse essere qualcosa in questo modo Siamo in una situazione insolita e desideriamo ripristinare qualcosa di così vecchio. Ci proverò
  • Una mancata corrispondenza nellhash pbe predefinito (o specificando lhash sbagliato o solo la password sbagliata) provocherà la decrittografia dei rifiuti che per un cifrario in modalità CBC (come qui) sarà quasi sempre essere rilevato come 06065064 ' decrittografia errata ' – ma non ' numero magico errato '. Solo un file danneggiato, o uno crittografato con -nosalt o un veramente antico OpenSSL (prima della 0.9.6 al massimo) lo fa.

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *