🚧 进行中的工作/🔄 重构/ 测试: 优化AES、DES3和RSA加密实现并增强安全性

- 修改DateConsts中的ISO_8601时间格式,使用XXX代替xxx以符合标准时区偏移表示
- 完善AES类注释及文档说明,明确加密模式支持情况和参数要求
- 优化AES加解密逻辑,去除不必要的数据块填充操作,直接使用原始数据进行加解密
- 增强AES异常处理机制,统一捕获并封装异常防止信息泄露
- 在AES中增加获取当前算法的方法,并完善各个getter/setter方法的注释和校验
- 重构DES3类,改进密钥长度验证逻辑,确保密钥非空且满足最低长度要求
- 改进DES3加密过程,使用SecureRandom生成随机IV并向量与加密结果合并存储
- 更新DES3解密流程,从加密数据中分离出IV用于解密,提高安全性
- 添加generateKey私有方法用于生成3DES密钥对象,集中管理密钥创建过程
- 优化DES3填充方法padding,当数据长度恰好为8的倍数时不进行多余填充
- 修订RSA类结构,将内部静态类Instace更名为Instance并调整访问权限
- 修改RSA字段为volatile类型,确保多线程环境下的可见性和一致性
- 完善RSA密钥生成方法initKeys,支持临时设置Base64URLSafe标志并在执行后恢复原值
- 优化RSA密钥文件写入方式,使用Files.writeString替代旧版方法提升性能
- 补充RSA获取公私钥方法的返回值说明和可能抛出的具体异常类型
- 改进RSA加密解密方法,支持传入base64URLSafe参数控制编码格式
- 重构RSA核心加解密逻辑encrypt/decrypt,抽取getKeyLength方法计算密钥长度
- 引入BouncyCastleProvider支持特定SHA3签名算法的RSA实现
- 增强RSA分段编解码rsaSplitCodec方法,加入最大块大小有效性检查
- 优化RSA签名verify方法,提取复合签名字符串解析逻辑至独立extractSignature方法
- 完善RSA2各类获取公私钥方法的返回值说明和详细的异常描述
- 修复RSA2中JcaPEMKeyConverter未指定Provider的问题,统一使用BouncyCastleProvider
- 整体增强各加密类的安全性、健壮性和代码可维护性
This commit is contained in:
maxf
2025-12-12 18:02:13 +08:00
parent 8774512cf0
commit 7f8c46fa9b
18 changed files with 1442 additions and 451 deletions

View File

@@ -5,9 +5,9 @@ github:https://github.com/yexuejc/yexuejc-base
gitee:https://gitee.com/jzsw-it/yexuejc-base
### 说明
1. 支持环境java111.5.0开始支持java11请使用`1.5.x-jre11`版本)
1. 支持环境java211.5.0开始支持java11请使用`1.5.x-jre11`版本1.6.0开始支持java21请使用`1.6.x-jre21`版本
2. 该工具包基于springboot提取按理说适用于所有java工程
7.`1.5.0`开始,版本分为`1.5.0-jre8``1.5.0-jre11`分别对于jre8和jre11使用后续逐渐放弃jre8
7.`1.5.0`开始,版本分为`1.5.0-jre8``1.5.0-jre11``1.6.0-jre21`分别对于jre8和jre11和jre21使用(后续逐渐全面使用jre21
### 使用
@@ -17,7 +17,7 @@ pom.xml
<dependency>
<groupId>top.yexuejc</groupId>
<artifactId>yexuejc-base</artifactId>
<version>1.5.2-jre11</version>
<version>1.6.0-jre21</version>
</dependency>
</dependencies>
```