You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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-starter2.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

火山引擎 最新活动