一个基于 Spring Boot 的加密工具 starter,提供 AES 和 RSA 加密算法的封装,简化加密和解密操作。
- AES 加密/解密:支持多种 AES 算法模式(如 CBC、GCM 等)。
- RSA 密钥生成、加密、解密、签名与验签:支持灵活的 RSA 操作。
- 工具类封装:提供
AESUtils和RSAUtils工具类,简化使用流程。 - 异常处理:统一的异常封装,便于错误追踪和处理。
-
AES 加密相关
AESKeyPair:AES 密钥管理。AESAdvancedKeyPair:支持更复杂 AES 模式的密钥管理。AESUtils:提供 AES 加密/解密的静态方法。AesAlgorithmEnum:定义 AES 算法类型。
-
RSA 加密相关
RSAKeyPair:管理 RSA 公钥和私钥,并提供加密、解密、签名和验签功能。RSAPrivateKeyPair:封装 RSA 私钥操作。RSAPublicKeyPair:封装 RSA 公钥操作。RSAUtils:提供 RSA 操作的静态方法。RsaAlgorithmEnum、SignAlgorithmEnum:定义 RSA 和签名算法类型。
-
异常处理
CryptException:基础加密异常类。AESException、RSAException:分别封装 AES 和 RSA 操作中的异常。ErrorCode:定义错误码枚举。
将本项目作为依赖引入你的 Spring Boot 项目中。
// 生成 AES 密钥
String key = AESUtils.genericKey();
// 加密
String encrypted = AESUtils.encrypt(AesAlgorithmEnum.AES_128_CBC, "Hello, World!", key);
// 解密
String decrypted = AESUtils.decrypt(AesAlgorithmEnum.AES_128_CBC, encrypted, key);// 生成 RSA 密钥对
RSAKeyPair keyPair = RSAUtils.createRSAKeyPair();
// 使用公钥加密
String encrypted = RSAUtils.encrypt(keyPair, "Secret Data");
// 使用私钥解密
String decrypted = RSAUtils.decrypt(keyPair, encrypted);// 签名
String signature = RSAUtils.sign(keyPair, "Data to sign");
// 验签
boolean isValid = RSAUtils.verify(keyPair, "Data to sign", signature);所有加密操作均抛出 CryptException 或其子类(如 AESException、RSAException),可捕获并处理异常信息。
本项目遵循 MIT 许可证。详情请查看 LICENSE 文件。