Я столкнулся с проблемой при попытке расшифровать файл с помощью 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