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
相关推荐
KevinCyao9 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
總鑽風9 小时前
搭建Spring Boot + ELK日志平台,实现可视化日志监控
spring boot·elk·macos
不吃香菜学java10 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
新知图书10 小时前
搭建Spring Boot开发环境
java·spring boot·后端
皮皮林55110 小时前
SpringBoot 4 最被低估的新特性:Spring Data AOT
spring boot
宸津-代码粉碎机10 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python
MaCa .BaKa10 小时前
47-心里健康咨询平台/心理咨询系统
java·spring boot·mysql·tomcat·maven·intellij-idea·个人开发
Devin~Y11 小时前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
磊 子11 小时前
redis详解2
java·spring boot·redis
程序员阿明11 小时前
spring boot3 集成jjwt(java-jwt)版本的
java·spring boot·python