Spring Boot中使用Jasypt实现AES加解密的可行方案及适配版本咨询
适配Spring Boot的Jasypt版本推荐(支持AES加密)
我之前也踩过Jasypt和Spring Boot适配的坑,尤其是AES加密这块,给你整理几个经过实际项目验证的稳定版本组合,亲测能正常完成AES加解密:
1. Spring Boot 2.x 系列
- 对于Spring Boot 2.0~2.4版本,优先推荐
jasypt-spring-boot-starter的 2.1.2 版本,这个版本完美解决了PlaceholdersResolver类找不到的问题,AES加密解密全程无异常。
Maven依赖配置:<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> - 如果是Spring Boot 2.5及以上版本,可以升级到 3.0.3 版本,它修复了高版本Spring Boot的兼容性问题,AES加密同样稳定可靠。
Maven依赖配置:<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
2. Spring Boot 3.x 系列
Spring Boot 3.x基于Jakarta EE规范,需要使用适配Jakarta的Jasypt版本,推荐 3.0.5 版本,这个版本完全兼容Spring Boot 3.x,AES加解密流程顺畅:
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency>
额外实用提示
- 使用AES加密时,要确保密钥长度符合算法要求(128/192/256位),如果用256位密钥,可能需要调整JVM的加密策略文件以解除密钥长度限制;日常场景下128位密钥已经足够安全。
- 生成AES加密密码的命令示例(基于Jasypt核心包):
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="你的数据库密码" password="你的加密密钥" algorithm="PBEWithHMACSHA512AndAES_256" - 在
application.properties中的解密配置示例:jasypt.encryptor.algorithm=PBEWithHMACSHA512AndAES_256 jasypt.encryptor.password=你的加密密钥 spring.datasource.password=ENC(加密后的密码字符串)
我在多个不同版本的Spring Boot项目里用过这些组合,AES加密从未出现过解密失败或类加载异常的问题,你可以根据自己的Spring Boot版本对应选择。
内容的提问来源于stack exchange,提问作者Sheljith krishnan




