You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决ChaCha20加密中“hex string is too short, padding with zero bytes to length”错误

解决ChaCha20加密时的"hex string is too short, padding with zero bytes to length"错误

错误原因

  • 加密命令的IV参数长度错误:ChaCha20要求nonce(即OpenSSL中的iv)为12字节(96位),对应十六进制字符串长度应为24个字符。你加密命令中指定的iv abcdefabcdefabcdefabcdefabcdef是36个字符,超出标准长度,导致OpenSSL抛出错误。
  • 加密和解密的密钥/nonce不匹配:加密时使用硬编码的密钥和错误IV,解密时却用clave.bin和nonce.bin生成的值,两边参数完全不一致,即使加密成功也无法正常解密。

修正后的完整命令流程

  1. 生成密钥和nonce(你的这部分命令是正确的,保留):
openssl rand -out clave.bin 16  # 128 bits = 16 bytes  
openssl rand -out nonce.bin 12  # 96 bits = 12 bytes
  1. 加密文件(使用生成的密钥和nonce的十六进制值):
openssl enc -chacha20 -in mensaje.txt -out mensaje.enc -K $(xxd -p -c 256 clave.bin) -iv $(xxd -p -c 256 nonce.bin)
  1. 解密文件(与加密使用同一组密钥和nonce):
openssl enc -d -chacha20 -in mensaje.enc -out mensaje_descifrado.txt -K $(xxd -p -c 256 clave.bin) -iv $(xxd -p -c 256 nonce.bin)

额外验证步骤

  • 确认密钥和nonce的长度符合要求:
wc -c clave.bin  # 输出应为16
wc -c nonce.bin  # 输出应为12

内容的提问来源于stack exchange,提问作者Diego Guillén Serrano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:41:08