springBoot集成jasypt快速入门

122 阅读1分钟
  • 引入依赖
<dependency>
        <groupId>com.github.ulisesbocchio</groupId>
        <artifactId>jasypt-spring-boot-starter</artifactId>
        <version>2.1.0</version>
</dependency>
  • 配置加密/解密秘钥
jasypt:
  encryptor:
    password: Y6M9fAJQdU7jNp5MW
  • 加密字符串
@Test
public class DatabaseTest {

    @Autowired
    private StringEncryptor encryptor;

    @Test
    public void getPass() {
        String url = encryptor.encrypt("jdbc:mysql://localhost:3306/mydb&characterEncoding=utf-8");
        String name = encryptor.encrypt("root");
        String password = encryptor.encrypt("123456");
        
        System.out.println("database url: " + url);
        System.out.println("database name: " + name);
        System.out.println("database password: " + password);
    }
}
  • 替换明文
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: ENC(h20YiPrvNnuuTe096APd3bnG3++Yro=)
    username: ENC(sT6BztXbJEa71eg3pPGYMQ==)
    password: ENC(MpSZFJ9ftq+3+VUANZjr0Q==)

jasypt:
  encryptor:
    password: Y6M9fAJQdU7jNp5MW   # 加密的密匙
  • 为防止加密秘钥泄露,可在项目部署的时候使用命令传入
java -jar xxx.jar -Djasypt.encryptor.password=Y6M9fAJQdU7jNp5MW