欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot 配置文件加密

程序员文章站 2022-06-13 19:04:54
...

一.添加相关依赖

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

二.设置秘钥,直接写在配置文件中,在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("==================");
    }

}

得到一个密码

springboot 配置文件加密

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

springboot 配置文件加密

 

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

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

springboot 配置文件加密

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

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

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

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

springboot 配置文件加密

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

 

 

 

相关标签: SpringBoot项目相关