使用 OpenSSL 解密文件时出现问题:“十六进制字符串太短,用零字节填充长度”

使用 OpenSSL 解密文件时出现问题:“十六进制字符串太短,用零字节填充长度”

我在尝试使用 Open SSL 解密文件时遇到问题。我有一个名为的文件,fc382Crypto.bin由我的导师提供,我需要使用 CBC 模式的 blowfish 算法对其进行解密。

这是我用来解密文件的命令:

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 位长。

钥匙:0x00000000000000112233445566778899

四: 0x00000000000000000000000000000000

AES-128 加密方法表示媒体片段已使用高级加密标准 (AES) [AES_128] 和 128 位密钥、密码块链接 (CBC) 和公钥加密标准 #7 (PKCS7) 填充 [RFC5652] 完全加密。CBC 在每个片段边界上重新启动,使用初始化向量 (IV) 属性值或媒体序列号作为 IV;请参阅第 5.2 节。

该值是一个十六进制序列,指定与密钥一起使用的 128 位无符号整数初始化向量。使用 IV 属性要求兼容版本号为 2 或更高。有关何时使用 IV 属性,请参阅第 5.2 节。

来源:https://www.rfc-editor.org/rfc/rfc8216#section-4.3.2.4

相关内容