autorenew

springboot 使用 jasypt 加密解密

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

一、引入依赖

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

二、配置文件

加密前

spring:
  datasource:
    password: 123456

加密后

spring:
  datasource:
    password: ENC(slZULLmbudl1M6/43iq6y8100XQ4DlqnxtToLxtUODxqlsCm02M2ujbx6ayy4j92)

三、加密

这里以 AES256 为例

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

四、解密

4.1 IDE 设置

vm options 加入如下代码:

-Djasypt.encryptor.password=test

IDEA 配置 jasypt

4.2 运行

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

4.3 测试类

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