Springboot集成jasypt实现配置文件加密

Jasypt它提供了单密钥对称加密和非对称加密两种加密方式。
单密钥对称加密:一个密钥加盐,可以同时用作内容的加密和解密依据;
非对称加密:使用公钥和私钥两个密钥,才可以对内容加密和解密;
我们以单密钥对称加密方式为例简单演示一下
先引入依赖

		
			com.github.ulisesbocchio
			jasypt-spring-boot-starter
			3.0.5
		

简单配置流程为配置文件加入秘钥配置项jasypt.encryptor.password(这里演示不使用这种方式,采用启动时-D参数注入,也可以放在配置中心等地方进行读取),并将需要加密的value值替换成预先经过加密的内容ENC(密文)。加密内容格式可以自定义我这里自己配置了格式(light[密文]),配置自定义格式方式如下: 

jasypt:
  encryptor:
    property:
      prefix: "light["
      suffix: "]"

在springboot单元测试的类上加上启动参数 -Djasypt.encryptor.password=qwer1997

Springboot集成jasypt实现配置文件加密_第1张图片

import org.jasypt.encryption.StringEncryptor;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class LightElementMybatisApplicationTests {

	@Autowired
	private StringEncryptor stringEncryptor;

	@Test
	void testEncrypt() {
		String encryptStr = stringEncryptor.encrypt("123456");
		System.out.println("加密后的内容:" + encryptStr);
	}

}

运行单元测试获取到加密密文 

替换掉配置文件中的内容 

Springboot集成jasypt实现配置文件加密_第2张图片

在springboot启动类上加上启动参数 -Djasypt.encryptor.password=qwer1997,添加方式和测试类一样 ,启动项目没有发生报错,调用查询接口查询一下数据,数据正常返回,说明集成成功。

Springboot集成jasypt实现配置文件加密_第3张图片

你可能感兴趣的:(SpringBoot,java)