admin管理员组文章数量:1589790
工程中的配置文件如果把数据库的用户名密码写成明文的话是一件很危险的事情,之前也看见网上说可以对密码进行加密,用的时候再解密,因此今天我就尝试如何在spring boot 中的项目中实现关键信息的加密解密,并记录下来。
jasypt
Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.
这是摘抄自Jasypt官网的一句描述,重点就是简单方便,同时和spring能够很好的集成,尤其是还提供了对spring boot的支持,可以参考starter的实现:https://github/ulisesbocchio/jasypt-spring-boot
集成步骤
1.在spring boot项目pom.xml中添加依赖:
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.14</version> </dependency>
2. 从网上下载一个jasypt-1.9.2.jar,在命令行中输入如下的命令对你想要加密的关键信息,以数据库的连接密码为例
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="<要加密的关键信息>" password=<加密的salt> algorithm=PBEWithMD5AndDES
结果类似下面,拷贝出OUTPUT下面的那一串字符串
3.回到到项目配置文件,将上面步骤拷贝的字符串更新到数据库的密码配置中,密码前需要加上ENC3个字符并且用括号括起来
spring.datasource.password=ENC(加密后的字符串)
4. 启动项目,启动命令时需要加入之前加密时配置的salt, 例如:
java -jar -Djasypt.encryptor.password=e9fbdb323432 -Xmx512m xxx.jar如果不想被别人从启动脚本中获取salt,可以采用在机器中配置相关环境变量,例如:java -jar -Djasypt.encryptor.password=${JASYPT_PASSWORD} -Xmx512m xxx.jar
检查一下是否访问数据库正常。
参考
https://wwwblogs/zz0412/p/jasypt-001.html
欢迎关注我的个人的博客www.zhijianliu, 虚心求教,有错误还请指正轻拍,谢谢
版权声明:本文出自志健的原创文章,未经博主允许不得转载
版权声明:本文标题:Spring Boot配置文件加密的快速指南 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728074854a1144354.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论