aes cbc128模式加密出现“hex string is too long, ignoring excess”或者“hex string is too short, padding with ze

博客内容讲述了在使用openssl进行AES-128-CBC加密时遇到的'hexstring too short, padding with zero bytes to length'错误。解决方案是确保使用32字节的16进制字符串设置盐和秘钥,对于AES-256-CBC模式,盐和秘钥分别需要32和64字节。正确设置后,加密过程能正常进行。

使用如下命令:

openssl enc -aes-128-cbc -in test.cpp -out test11.cpp -iv f123 -K 1223  #aes-128-cbc为填充模式 -iv指定盐 -K指定秘钥

出现“hex string is too short, padding with zero bytes to length”这样错误

解决:使用命令:

openssl enc -aes-128-cbc -in test.cpp -out test11.cpp -iv f12aaaaaa888888888888888888888aa -K f12aaaaaa888888888888888888888aa #将盐和秘钥设置32字节的16进制字符串

如果采用256cbc,那么盐设置32字节,秘钥设置为64字节。

在使用 `openssl enc -id-aes256-wrap-pad` 时,如果遇到提示 `hex string is too short`,通常是因为 `-iv` 或 `-K` 参数提供的十六进制字符串长度不足,未达到 AES256 所需的 128 位(16 字节)IV 和 256 位(32 字节)密钥要求。 对于 AES256 加密,初始化向量(IV)必须是 16 字节(即 32 位十六进制字符串),而密钥必须是 32 字节(即 64 位十六进制字符串)。若提供的值长度不足,OpenSSL 会提示 `hex string is too short` 并拒绝执行加密或解密操作[^1]。 ### 解决方法 确保 `-iv` 和 `-K` 参数的值满足长度要求: - `-iv` 必须为 32 位十六进制字符串(例如 `00000000000000000000000000000000`)。 - `-K` 必须为 64 位十六进制字符串(例如 `0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef`)。 #### 示例:正确配置 `-iv` 和 `-K` 的 AES256-WRAP-PAD 加密命令 ```bash openssl enc -id-aes256-wrap-pad -e -in plaintext.key -out encrypted.key \ -K 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \ -iv 00000000000000000000000000000000 ``` 若 `-iv` 值过短(如 `f123`),OpenSSL 会提示 `hex string is too short` 并忽略多余部分或填充零值,这可能导致加密结果不可预测或失败。 #### 示例:正确配置 `-iv` 和 `-K` 的 AES256-WRAP-PAD 解密命令 ```bash openssl enc -id-aes256-wrap-pad -d -in encrypted.key -out decrypted.key \ -K 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \ -iv 00000000000000000000000000000000 ``` 解密时必须确保 `-iv` 与加密时使用的 IV 完全一致,否则可能导致解密失败或输出无效数据[^2]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值