1e00007b:Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH (<Unknown so...

2025年11月17日 01:18 状态: processing

🚨 错误信息

获取正文失败   org.mozilla.javascript.WrappedException: Wrapped cn.hutool.crypto.CryptoException: IllegalBlockSizeException: error:1e00007b:Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH (<Unknown source>#5) in <Unknown source> at line number 5

🤖 AI解决方案

错误翻译

原文:IllegalBlockSizeException: error:1e00007b:Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH
译文:非法块大小异常:错误的最终块长度

原因分析

这是一个加密解密过程中的数据块长度错误。根本原因是解密时使用的密钥与加密时不一致,或者加密数据在传输/存储过程中被篡改损坏

错误发生在第5行的解密操作中,Hutool加密工具尝试使用AES等块加密算法解密数据时,发现数据块长度不符合算法要求。

解决方案

// 1. 检查加密和解密使用相同的密钥
String key = "你的加密密钥"; // 确保加密解密使用相同密钥

// 2. 使用正确的解密方式
try {
    String encryptedData = "你的加密数据";
    String decryptedData = SecureUtil.aes(key.getBytes()).decryptStr(encryptedData);
} catch (CryptoException e) {
    // 3. 处理解密失败的情况
    log.error("解密失败,请检查密钥和数据完整性", e);
    // 返回默认值或抛出业务异常
    return "获取正文失败,请检查数据";
}

️ 预防措施

  • 密钥管理规范化:使用统一的密钥管理系统,避免硬编码密钥
  • 数据完整性校验:在加密数据前后添加校验机制,如MD5验证
  • 使用try-catch包装加密操作,确保程序健壮性

推荐工具:使用Hutool的SecureUtil进行规范的加密解密操作,避免手动处理底层密码学细节。