springboot 配置文件加密

一.添加相关依赖

        
            com.github.ulisesbocchio
            jasypt-spring-boot-starter
            2.1.0
        
        
            org.jasypt
            jasypt
            1.9.3
        

二.设置秘钥,直接写在配置文件中,在application.yml文件中加上

jasypt:
  encryptor:
    password: hn #这里是需要设置的密码

三.生成加密密码

import lombok.extern.slf4j.Slf4j;
import org.jasypt.encryption.StringEncryptor;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class KissTest {


    @Autowired
    StringEncryptor stringEncryptor;

    @Test
    public void encryptPwd() {
        //执行加密,root为加密前密码,result为加密后密码
        String result = stringEncryptor.encrypt("root");
        System.out.println("==================");
        System.out.println(result);
        System.out.println("==================");
    }

}

得到一个密码

四.将明文密码替换成加密码密码(ENC(密码)),这样获取配置的时候会自动解密

springboot 配置文件加密_第1张图片

 

五.使用普通属性测试一下

test: ENC(9B4hci90P22vTd/s4XMtCQ==) #明文是root

springboot 配置文件加密_第2张图片

六.上面就完成了,但是我们的秘钥放在配置文件中显然是不安全的,别人直接拿着秘钥就可以把密码解密出来,所以我们就需要吧秘钥隐藏起来

项目打包的时候,我们可以把第二步的配置给去掉,

第一种:以命令形式添加配置,运行项目的时候 在后面拼接 --jasypt.encryptor.password=123456
java -jar xxx.jar --jasypt.encryptor.password=hn

第二种:以环境变量形式存储(linux)

springboot 配置文件加密_第3张图片

java -jar xxx.jar --jasypt.encryptor.password=${JASYPT_PASSWORD}

 

 

 

你可能感兴趣的:(SpringBoot项目相关)