大多数的项目都是需要用到配置文件的,配置文件配置了一些必备信息,就比如数据库链接信息,缓存信息,而这些信息以明文的形式写在配置文件中,这是相当危险的,下面我就介绍一种解决方案,通过把配置信息加密放在配置文件中,这样就大大降低了风险。
话不多说,直接上案例,代码比什么都管用。
1.导入依赖
<!--jasypt加密依赖-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
2.创建测试类,开始加密
@Test
public void testEnc() {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("123456");
String CloudCoder = encryptor.encrypt("CloudCoder");
System.out.println("CloudCoder = " + CloudCoder);
}
加密密文串:
oKIdQ2pqK0mat7j/UnWNL+gNtJqWmsNG
3.替换原有配置信息
# ENC()标识加密串
my.config-username=CloudCoder
替换成
my.config-username=ENC(oKIdQ2pqK0mat7j/UnWNL+gNtJqWmsNG)
4.加密秘钥
至于加密秘钥,一般都是配置到虚拟机参数中,启动jar包的话也可以配置到启动参数中。像有的博客说的写在配置文件中,我就强烈不建议了,本来就是对配置信息加密的,秘钥写在配置文件中加密不就等于掩耳盗铃吗,这个不建议,确切的来说不能那么干,用我下面的方法就足够了。
dev:
prod:
nohup java -Djasypt.encryptor.password=123456 -jar xxx.jar &
标签:CloudCoder,加密,SpringBoot,配置文件,encryptor,jar,信息 From: https://blog.51cto.com/u_16167640/6725668
视野决定上限,能力决定下限,努力决定空间
,是不是感觉很简单啊,没错,就是那么容易,因为jar包什么的都是前人封装好的,只需要用就可以了,还是很方便的噻。