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
相关推荐
jameslogo6 小时前
如何用RocketMQTemplate发送事务消息
java·spring boot·rocketmq
无关86887 小时前
Spring Boot 项目标准化部署打包实战
java·spring boot·后端
jay神7 小时前
基于微信小程序课外创新实践学分认定系统
java·spring boot·小程序·vue·毕业设计
阿丰资源8 小时前
基于Spring Boot的酒店客房管理系统
java·spring boot·后端
zzqssliu8 小时前
SpringBoot框架搭建跨境独立站|Taocarts代购系统订单模块深度开发
java·spring boot·后端
武子康9 小时前
Java-219 RocketMQ Spring Boot 集成指南:生产者与消费者实战
java·spring boot·分布式·kafka·消息队列·rocketmq·java-rocketmq
想学习java初学者9 小时前
SpringBoot整合GS1编码解码
java·spring boot·后端
i220818 Faiz Ul10 小时前
智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·智慧养老平台
Flittly11 小时前
【日常小问】Spring Cloud Gateway 5.x 跨域和路由配置踩坑实录
java·spring boot·spring cloud