在基于springboot的开发中,都会使用application.properties或application.yml文件,在配置文件中会配置数据库等信息,且通常是明文显示,下面引入jasypt组件,对敏感信息进行加解密处理。
1依赖

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

2在application.propertes中配置加/解密的密钥

datasource.password=ENC(7BtpfEL3+swnHab9kBdLWw==)

# jasypt加密的密匙
jasypt.encryptor.password=1234567890

3测试

	//在单元测试类中
	@Autowired
    private StringEncryptor stringEncryptor;

    @Test
    public void test3() {
        String password = stringEncryptor.encrypt("123456");
        System.out.println("password:" + password);
    }

输出

password:asqCKV6CoxKNdTXaqHelyQ==

4使用,参考2步骤中datasource.password=ENC(7BtpfEL3+swnHab9kBdLWw==)
5测试

@Value("${datasource.password}")
    private String password;

    @RequestMapping("/jasypt")
    public String jasypt() {
        return "password:" + password;
    }

返回

password:123456

注:为了防止salt(盐)泄露,反解出密码.可以在项目部署的时候使用命令传入salt(盐)值

java -jar xxx.jar  -Djasypt.encryptor.password=1234567890
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐