项目上有些配置需要加密,比如数据库的密码,jasypt可以实现加密解密功能。

一、引入依赖

1
2
3
4
5
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>

二、配置文件

加密前

1
2
3
spring:
datasource:
password: 123456

加密后

1
2
3
spring:
datasource:
password: ENC(slZULLmbudl1M6/43iq6y8100XQ4DlqnxtToLxtUODxqlsCm02M2ujbx6ayy4j92)

三、加密

这里以ASE256为例

1
2
3
4
5
6
7
8
// 指定算法
AES256TextEncryptor textEncryptor = new AES256TextEncryptor();
// 指定秘钥
textEncryptor.setPassword("test");
// 生成加密数据
String encrypt = textEncryptor.encrypt("123456");
System.out.println(encrypt);
// slZULLmbudl1M6/43iq6y8100XQ4DlqnxtToLxtUODxqlsCm02M2ujbx6ayy4j92

四、解密

4.1 IDE设置

vm options加入如下代码:

1
-Djasypt.encryptor.password=test

本地图片

4.2 运行

1
java -jar -Djasypt.encryptor.password=test xxx.jar

4.3 测试类

对于需要单元测试的类,只要在类上加 @Import(EnableEncryptableProperties.class) 注解即可