spring boot 对配置文件加密
配置文件中的数据库账户、密码不能明文展示。否则代码泄露的话,数据库就被人删除跑路了。
首先引入依赖
1 2 3 4 5 | <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> |
编写测试代码
1 2 3 4 5 6 7 8 9 10 11 | @Test public void testDecrypt(){ BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); //加密所需的salt(盐) textEncryptor.setPassword( "bad_boy" ); //要加密的数据(数据库的用户名或密码) String username = textEncryptor.encrypt( "root" ); String password = textEncryptor.encrypt( "123456" ); System. out .println( "username: " + username); System. out .println( "password:" + password); } |
将加密后的数据填写到配置文件中
1 2 3 4 5 6 | spring: datasource: driver- class -name: com.mysql.cj.jdbc.Driver url: jdbc:mysql: //127.0.0.1:3306/wcscanner?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true username: ENC(JWkISjb1dfh+x1AMNIqr/Q==) password: ENC(rMP11CKRnw+s1vM/iTgF1FdS+XylskGiM3fZqMeaOFM=) |
加密配置
1 2 3 4 | jasypt: encryptor: password: algorithm: PBEWithMD5AndDES |
运行时增加秘钥变量
--jasypt.encryptor.password=bad_boy
java -jar foo.jar --jasypt.encryptor.password=
bad_boy
愉快运行即可。
解密代码
分类:
java学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~