springboot中给属性文件内容加密(application.properties,application.yml)

1|01.加密所有用的技术 jasypt

  目的:为项目增加加密功能,为安全多一层保障

  原理:在启动项目读取配置文件时,给加密的属性解密

2|02.实现

引入依赖

<!--jasypt--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>

配置,在属性文件中加入,之后会根据盐值解密

jasypt.encryptor.password=盐值

3|03.手动将需要加密的属性加密

我这里实在springboot单元测试中运行

这里的盐值就是写在属性文件中的盐值

@Test
public void getPass() {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword("yangzhuxian@test");
//加密
String host = textEncryptor.encrypt("yang***aa**.***");
String port = textEncryptor.encrypt("6000");
System.out.println("加密后"+host);
System.out.println("加密后"+port);
//解密
String decrypt = textEncryptor.decrypt(host);
System.out.println("解密后"+decrypt);
}

结果:

注意:每次加密的值都是不一样的,解密后都是一样的

 

 

4|0 4.将加密后的结果写入属性文件(完成)

ENC():这是jasypt设置默认的标识,作用是在读取配置文件时,判断哪些属性需要解密后读取。

ENC()是可以更改的,这里不演示,有需要的可以研究一下jasypt的属性配置

 

 

5|0 5.补充

到这里肯定会有人觉得将盐值放在属性文件里面是不安全的。

这里有个解决方案

  将盐值作为项目启动时的参数传入

 

 

 

 

 项目部署时也可以将盐值传入

 

 


__EOF__

本文作者yangzhuxian Love wzy
本文链接https://www.cnblogs.com/yangzhuxian/p/14339604.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   yangzhuxian  阅读(770)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示