zły numer magiczny przy odszyfrowywaniu


12

W kwietniu zaszyfrowałem plik za pomocą polecenia

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

Teraz chcę go odszyfrować

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

ale dostaję zły numer magiczny.

Plik zaszyfrowany wczoraj o tych samych parametrach odszyfrowuje ok.

Co mogłoby się stać? i czy w każdym razie mogę odzyskać ten zarchiwizowany plik?

Odpowiedzi:


6

Jeśli zaszyfrowałeś za pomocą OpenSSL <= 1.0.2 i odszyfrowałeś za pomocą OpenSSL 1.1.0, prawdopodobnie jest tak:

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

Domyślny skrót używany do generowania klucza z hasła zmieniono między 1.0.2 a 1.1.0. Spróbuj dodać -md md5do polecenia deszyfrowania.


1
dzięki, bałem się, że to może być coś takiego. Jesteśmy w niezwykłym miejscu i chcemy przywrócić coś tak starego. Spróbuję
KathyHH,

1
Niedopasowanie domyślnego skrótu pbe (lub podanie niewłaściwego skrótu lub tylko niewłaściwego hasła) spowoduje odszyfrowanie elementów bezużytecznych, które dla szyfru w trybie CBC (jak tutaj) prawie zawsze będzie wykrywane jako 06065064 „zły odszyfruj” - ale nie „ zła liczba magiczna ”. Robi to tylko uszkodzony plik, zaszyfrowany -nosaltlub naprawdę starożytny OpenSSL (najwyżej przed 0.9.6).
dave_thompson_085

1

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:

7
W drugim poleceniu nie odszyfrowujesz ( -d) ...
Dangonfast,

1

Ogólna przyczyna tego błędu polega na tym, że klucz obliczony przez OpenSSL na podstawie hasła jest niepoprawny, co oznacza, że ​​nie jest taki sam jak klucz, który szyfrował dane.

Jednym z powodów, dla których ten błąd może się pojawić, w innej sytuacji niż pierwotne pytanie, jest to, że szyfrujesz za pomocą innego narzędzia niż OpenSSL, na przykład szyfrujesz w Javie i deszyfrujesz za pomocą SSL.

Zobacz rozwiązanie dla Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.