неправильне магічне число на розшифровці


12

У квітні я зашифрував файл за допомогою команди

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

Тепер я хочу розшифрувати його

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

але я отримую поганий магічний номер.

Файл, зашифрований вчора з тими ж параметрами, розшифровує нормально.

Що могло статися? і чи все-таки я можу отримати цей заархівований файл?

Відповіді:


6

Якщо ви зашифровані за допомогою OpenSSL <= 1.0.2 і розшифруєте OpenSSL 1.1.0, це, мабуть, так:

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

Хеш за замовчуванням, який використовується для генерування ключа з пароля, зміненого між 1.0.2 та 1.1.0. Спробуйте додати -md md5до команди дешифрування.


1
дякую, я боявся, що це може бути щось подібне. Ми знаходимось у незвичній ситуації, що хочемо відновити щось таке старе. Я спробую це
KathyHH

1
Невідповідність дефолтного хеш-файлу (або вказівки неправильного хеша або просто неправильного пароля) спричинить розшифровку сміття, яка для шифру в режимі CBC (як тут) майже завжди буде визначатися як 06065064 "погана розшифровка" - але не " погане магічне число '. Тільки пошкоджений файл, або один зашифрований -nosaltабо дійсно древній OpenSSL (до 0.9.6 не більше) робить це.
dave_thompson_085

1

Команда, подана нижче, дала мені біль:

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

І нижченаведена команда вирішила це і доставила мені задоволення:

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
У другій команді ви не розшифровуєте ( -d) ...
dangonfast

1

Загальна причина цієї помилки полягає в тому, що ключ, обчислений OpenSSL з пароля, є помилковим, це означає не те саме, що ключ, який зашифрував дані.

Однією з причин, коли ця помилка може виявитися в іншій ситуації, ніж вихідна, - це якщо ви шифруєте за допомогою іншого інструменту, ніж OpenSSL, наприклад, шифрування на Java та розшифрування за допомогою SSL.

Дивіться рішення тут для Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.