cattivo numero magico su decrittografia


12

Ad aprile ho crittografato un file usando il comando

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

Ora voglio decifrarlo con

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

ma ho un brutto numero magico.

Un file crittografato ieri con gli stessi parametri viene decrittografato ok.

Cosa sarebbe potuto succedere? e c'è comunque un modo per recuperare questo file archiviato?

Risposte:


6

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

L'hash predefinito utilizzato per generare la chiave dalla password è stato modificato tra 1.0.2 e 1.1.0. Prova ad aggiungere il -md md5tuo comando di decrittazione.


1
grazie temevo che potesse essere qualcosa del genere Siamo in una situazione insolita che vuole ripristinare qualcosa di così vecchio. Ci proverò
KathyHH il

1
Una mancata corrispondenza nel pbe-hash predefinito (o specificando l'hash sbagliato o solo la password sbagliata) causerà la decrittografia di immondizia che per una crittografia in modalità CBC (come qui) verrà quasi sempre rilevata come 06065064 'decrittografia errata' - ma non ' cattivo numero magico ". Solo un file danneggiato, o uno crittografato con -nosalto un OpenSSL veramente antico (prima del 0.9.6 al massimo) lo fa.
dave_thompson_085,

1

Il comando seguente mi ha dato dolore:

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 dato 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:

6
Nel secondo comando, non stai decodificando ( -d) ...
dangonfast

1

La causa generale di questo errore è che la chiave calcolata da OpenSSL dalla password è errata, il che significa che non corrisponde alla chiave che ha crittografato i dati.

Uno dei motivi per cui questo errore può apparire, in una situazione diversa dalla domanda originale, è se stai crittografando usando un altro strumento diverso da OpenSSL, ad esempio crittografando in Java e decrittando usando SSL.

Vedi la soluzione qui per Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.