număr magic rău la decriptare

În aprilie am criptat un fișier folosind comanda

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

Acum vreau să îl decriptez cu

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

dar primesc un număr magic prost.

Un fișier criptat ieri cu aceiași parametri decriptează ok.

Ce s-ar fi putut întâmpla? și există oricum că pot recupera acest fișier arhivat?

Răspuns

Dacă ați criptat cu OpenSSL < = 1.0.2 și decriptați cu OpenSSL 1.1.0 atunci este probabil aceasta:

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

Hash-ul implicit utilizat pentru a genera cheia din parola modificată între 1.0.2 și 1.1.0. Încercați să adăugați -md md5 la comanda dvs. de decriptare.

Comentarii

  • mulțumesc că mă temeam că ar putea fi ceva așa suntem într-o situație neobișnuită, dorind să restabilim ceva atât de vechi. Voi încerca acest lucru
  • O nepotrivire în pbe-hash implicit (sau specificarea hash greșit sau doar parola greșită) va provoca decriptarea gunoiului care pentru un cifrare în modul CBC (ca aici) va fi aproape întotdeauna să fie detectat ca 06065064 ' decriptare greșită ' – dar nu ' număr magic magic '. Doar un fișier deteriorat sau unul criptat cu -nosalt sau un într-adevăr vechi OpenSSL (înainte de cel mult 0.9.6) face asta.

Răspuns

Comanda de mai jos mi-a dat durere:

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

Și comanda de mai jos a rezolvat-o și mi-a dat plăcere:

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: 

Comentarii

  • În a doua comandă, nu decriptați (-d) …

Răspundeți

Cauza generală a acestei erori este că cheia calculată de OpenSSL din parolă este greșită, ceea ce înseamnă că nu este aceeași cu cheia care a criptat datele.

Un motiv pentru care această eroare poate apărea sus, într-o situație diferită de întrebarea inițială, este dacă criptați utilizând un alt instrument decât OpenSSL, de exemplu criptarea în Java și decriptarea folosind SSL.

Consultați soluția aici pentru Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *