Jasypt它提供了单密钥对称加密和非对称加密两种加密方式。
单密钥对称加密:一个密钥加盐,可以同时用作内容的加密和解密依据;
非对称加密:使用公钥和私钥两个密钥,才可以对内容加密和解密;
我们以单密钥对称加密方式为例简单演示一下
先引入依赖
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version></dependency>
简单配置流程为配置文件加入秘钥配置项jasypt.encryptor.password(这里演示不使用这种方式,采用启动时-D参数注入,也可以放在配置中心等地方进行读取),并将需要加密的value值替换成预先经过加密的内容ENC(密文)。加密内容格式可以自定义我这里自己配置了格式(light[密文]),配置自定义格式方式如下:
jasypt:encryptor:property:prefix: "light["suffix: "]"
在springboot单元测试的类上加上启动参数 -Djasypt.encryptor.password=qwer1997
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 {@Autowiredprivate StringEncryptor stringEncryptor;@Testvoid testEncrypt() {String encryptStr = stringEncryptor.encrypt("123456");System.out.println("加密后的内容:" + encryptStr);}}
运行单元测试获取到加密密文
替换掉配置文件中的内容
在springboot启动类上加上启动参数 -Djasypt.encryptor.password=qwer1997,添加方式和测试类一样 ,启动项目没有发生报错,调用查询接口查询一下数据,数据正常返回,说明集成成功。