Spring Boot 3.x 中使用 Jasypt 时加解密不生效

遇到一个问题, 在Spring Boot 3.x 中使用 Jasypt 时,无法正常解密数据库密码,导致项目无法启动。提示如下

复制代码
***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'spring.datasource.dynamic.datasource.smart-manager.password' to java.lang.String:

    Reason: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'spring.datasource.dynamic.datasource.smart-manager.password' to java.lang.String

Action:

Update your application's configuration

经排查发现,该问题与 Spring Boot 3.x 的版本兼容性有关。Jasypt 3.x 默认采用强加密算法 PBEWITHHMACSHA512ANDAES_256。而当前使用的是旧算法 PBEWithMD5AndDES,因此需要额外添加配置,为其指定对应的 IV 生成器。

所以除了其他配置配置正确之外,配置文件需要这样写

复制代码
jasypt:
  encryptor:
    # 指定加密盐值,生产环境建议通过环境变量或启动参数传入,切勿硬编码
    password: ****************
    # 关键:指定使用旧算法
    algorithm: PBEWithMD5AndDES
    # 关键:为旧算法指定对应的IV生成器
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
相关推荐
vipxieliang5 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
kybs19915 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
码兄科技5 天前
24小时自助健身房系统软件开发实战指南:功能设计与部署方案
java·spring boot·uni-app
paopaokaka_luck5 天前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
需要8265 天前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
凤山老林5 天前
Spring Boot 应用 JVM 性能调优实战:GC 日志分析、堆内存规划与容器环境避坑
jvm·spring boot·gc·堆内存
计算机毕设定制辅导-无忧学长5 天前
《基于Vue的流浪动物救助中心管理系统的设计与实现》
java·vue.js·spring boot·流浪动物救助中心管理系统
huaweichenai6 天前
spring boot操作PDF
java·spring boot·pdf
guo_wen_qiang6 天前
springboot如何自定义一个启动器starter
java·spring boot·intellij-idea