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
相关推荐
高山上有一只小老虎15 小时前
SpringBoot项目集成thymeleaf实现web
前端·spring boot·后端
麦兜*15 小时前
SpringBoot进阶:深入理解SpringBoot自动配置原理与源码解析
java·spring boot·spring·spring cloud
yangminlei1 天前
Spring Boot3集成LiteFlow!轻松实现业务流程编排
java·spring boot·后端
qq_318121591 天前
互联网大厂Java面试故事:从Spring Boot到微服务架构的技术挑战与解答
java·spring boot·redis·spring cloud·微服务·面试·内容社区
计算机毕设VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
J_liaty1 天前
Spring Boot整合Nacos:从入门到精通
java·spring boot·后端·nacos
2***d8851 天前
SpringBoot 集成 Activiti 7 工作流引擎
java·spring boot·后端
计算机毕设VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
better_liang1 天前
每日Java面试场景题知识点之-XXL-JOB分布式任务调度实践
java·spring boot·xxl-job·分布式任务调度·企业级开发
q***o3761 天前
Spring Boot环境配置
java·spring boot·后端