zły magiczny numer przy odszyfrowywaniu

W kwietniu zaszyfrowałem plik za pomocą polecenia

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

Teraz chcę go odszyfrować za pomocą

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

, ale otrzymuję zły numer magiczny.

Plik zaszyfrowany wczoraj z tymi samymi parametrami odszyfrowuje ok.

Co mogło się stać? i czy mimo to mogę odzyskać ten zarchiwizowany plik?

Odpowiedź

Jeśli szyfrowano przy użyciu OpenSSL < = 1.0.2 i odszyfrowujesz za pomocą OpenSSL 1.1.0, to prawdopodobnie jest to:

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

Domyślny hash używany do generowania klucza z hasła zmienionego między 1.0.2 a 1.1.0. Spróbuj dodać -md md5 do polecenia odszyfrowywania.

Komentarze

  • Obawiam się, że to może być coś w ten sposób Znajdujemy się w niezwykłej sytuacji, w której chcemy przywrócić coś tak starego. Spróbuję
  • Niedopasowanie domyślnego skrótu pbe (lub określenie złego skrótu lub po prostu złego hasła) spowoduje odszyfrowanie śmieci, które dla szyfru w trybie CBC (jak tutaj) będzie prawie zawsze zostać wykryty jako 06065064 ' zły odszyfrowanie ' – ale nie ' zły magiczny numer '. Robi to tylko uszkodzony plik lub plik zaszyfrowany za pomocą -nosalt lub naprawdę starożytnego OpenSSL (co najwyżej sprzed 0.9.6).

Odpowiedź

Poniższe polecenie sprawiło mi ból:

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

A poniższe polecenie rozwiązało to i sprawiło mi przyjemność:

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: 

Komentarze

  • W drugie polecenie, nie odszyfrowujesz (-d) …

Odpowiedz

Ogólną przyczyną tego błędu jest to, że klucz obliczony przez OpenSSL na podstawie hasła jest nieprawidłowy, czyli nie jest taki sam jak klucz, który zaszyfrował dane.

Jednym z powodów, dla których ten błąd może się wyświetlić się, w innej sytuacji niż pierwotne pytanie, jeśli szyfrujesz za pomocą innego narzędzia niż OpenSSL, na przykład szyfrowanie w Javie i odszyfrowywanie za pomocą SSL.

Zobacz rozwiązanie dla Javy: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *