Jasypt 在线加解密工具

注意:服务托管在阿里函数计算平台,首次访问需要等待较长时间(10 秒左右)

Spring 中使用 Jasypt

Spring 的配置文件中会有一些敏感信息,如数据库密码,因此有时我们希望将敏感信息加密,Jasypt 就是其中比较方便的工具。

Jasypt 是一个 jar 包,实现了常用的一些加解密算法,在 Spring 中使用一般会用相应的 Spring starter 包,在 pom.xml 中加入依赖

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

接下来就可以在 application.yaml 中指定加密的配置,例如 spring.datasource.password: pass@1,则可以加密如下:

spring.datasource.password: ENC(o9FgF1JelkE/l2TrOd0iHg==)
jasypt.encryptor.password: secret
      

具体来说,加密的内容需要用 ENC(..) 括起来,加密用的密码通过 jasypt.encryptor.password 指定。

因为必须要解密,密码就需要放在配置文件里,或者放在代码中:

System.setProperty("jasypt.encryptor.password", ConstantValue.JASYPT_ENCRYPTOR_PASSWORD);
      

当然也可以把密码放在环境变量中,不过总体而言,客户端加密是个防君子不防小人的方法。