1e00007b:Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH (<Unknown so...
🚨 错误信息
获取正文失败
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解决方案
代码报错分析报告
错误翻译
原文:java.lang.IllegalStateException: IllegalBlockSizeException: error:1e00007b:Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH
译文:非法状态异常:非法块大小异常:错误的最终块长度
原因分析
根本原因:AES加密/解密时出现的块大小错误具体分析:
- 在使用Hutool加密工具进行AES解密时,输入的密文长度不符合AES算法的块大小要求
- 可能的原因:密文被截断、损坏,或者提供的密钥与加密时使用的密钥不匹配
- 错误发生在第5行,表明这是一个解密操作失败
解决方案
// 1. 检查密文完整性
String cipherText = "您的密文"; // 确保密文完整未被截断
// 2. 使用正确的解密方式(推荐使用Hutool的标准写法)
String key = "您的密钥"; // 密钥必须是16/24/32位
// 方式一:使用Base64解码(如果密文是Base64编码)
AES aes = SecureUtil.aes(key.getBytes());
String decryptStr = aes.decryptStr(cipherText, CharsetUtil.CHARSET_UTF_8);
// 方式二:如果密文是十六进制字符串
String decryptStr = aes.decryptStr(cipherText);
// 3. 添加异常处理
try {
String result = aes.decryptStr(cipherText);
// 处理解密结果
} catch (CryptoException e) {
// 记录日志并处理异常
logger.error("解密失败: {}", e.getMessage());
// 返回默认值或抛出业务异常
}
️ 预防措施
推荐工具:使用Hutool的SecureUtil.aes()进行AES操作,确保配置一致性;在生产环境中添加完整的异常处理和日志记录。