Проблема при расшифровке файла с помощью OpenSSL: «шестнадцатеричная строка слишком короткая, дополняем ее нулевыми байтами до нужной длины»

Проблема при расшифровке файла с помощью OpenSSL: «шестнадцатеричная строка слишком короткая, дополняем ее нулевыми байтами до нужной длины»

Я столкнулся с проблемой при попытке расшифровать файл с помощью Open SSL. У меня есть файл с именем, fc382Crypto.binпредоставленный моим инструктором, и мне нужно расшифровать его с помощью алгоритма blowfish с режимом CBC.

Вот команда, которую я использую для расшифровки файла:

openssl enc -aes-128-cbc -d -in fc382Crypto.bin -out decrypted_output.txt -K 112233445566778899 -iv 0000000000000000

Однако я постоянно получаю следующую ошибку:

hex string is too short, padding with zero bytes to length
hex string is too short, padding with zero bytes to length
bad decrypt

Я пробовал настроить команду, добавив опцию -nopad, но проблема осталась. Я также проверил целостность файла, fc382Crypto.binчтобы убедиться, что он не поврежден.

Настройки шифрования, предоставленные моим инструктором, следующие:

Algorithm: Blowfish
Mode: CBC
Key: 112233445566778899
IV: 0

Я не уверен, почему я сталкиваюсь с этой ошибкой или как ее устранить. Может ли кто-нибудь дать руководство о том, как правильно расшифровать этот файл с помощью OpenSSL?

введите описание изображения здесь

решение1

Я не знаю, почему возникла эта ошибка и как ее устранить.

Вы используете 128-битный алгоритм шифрования. Поэтому ваш ключ шифрования и вектор инициализации (IV) должны быть длиной 128 бит.

Ключ:0x000000000000000112233445566778899

IV: 0x00000000000000000000000000000000

Метод шифрования AES-128 сигнализирует о том, что сегменты носителя полностью зашифрованы с использованием расширенного стандарта шифрования (AES) [AES_128] с 128-битным ключом, цепочки блоков шифрования (CBC) и заполнения стандартов криптографии с открытым ключом #7 (PKCS7) [RFC5652]. CBC перезапускается на каждой границе сегмента, используя либо значение атрибута вектора инициализации (IV), либо номер последовательности носителя в качестве IV; см. раздел 5.2.

IV

Значение представляет собой шестнадцатеричную последовательность, которая указывает 128-битный беззнаковый целый вектор инициализации, который будет использоваться с ключом. Для использования атрибута IV ТРЕБУЕТСЯ номер версии совместимости 2 или выше. См. раздел 5.2, когда используется атрибут IV.

Источник:https://www.rfc-editor.org/rfc/rfc8216#section-4.3.2.4

Связанный контент