无需改动代码实现jasypt加密

项目引入插件依赖,引入starter后会自动启用jasypt

<dependencies>
   <dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
 </dependency>
</dependencies>
 
<plugins>
 <plugin>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-maven-plugin</artifactId>
     <version>3.0.4</version>
 </plugin>
</plugins>

加密配置文件(application-test.yml ),将需要加密的配置项 用 DEC()包裹

针对配置项加密 spring.datasource.password = 123456,改写如下:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    jdbc-url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useAffectedRows=true&serverTimezone=UTC&useSSL=false
    username: test
    password: DEC(1234567)

将待加密的配置文件改写后,运行如下maven命令,实现配置加密。jasypt.encryptor.password表示加密的秘钥,jasypt.plugin.path指定加密的配置文件路径

mvn jasypt:encrypt -Djasypt.encryptor.password=123456 -Djasypt.plugin.path=file:src/main/resources/application-test.yml ##指定配置所在文件

命令执行完成后,发现配置文件中的DEC包裹相关配置已变成密文(插件会自动修改替换配置项):

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    jdbc-url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useAffectedRows=true&serverTimezone=UTC&useSSL=false
    username: test
    password: ENC(yhghgg78u77gggy+jkjkhji557ghgh+7786ggghf6) ##随手写的

解密运行服务
在前文中加密的秘钥为123456,服务启动时,通过环境变量或启动参数指定解密的秘钥

-Djasypt.encryptor.password=123456 ##dev/test使用
## 启动参数
java -Djasypt.encryptor.password=123456 -jar spring-boot-test.jar

默认配置
版本 3.0.4,默认配置项如下:

jasypt.encryptor.password	True	
jasypt.encryptor.algorithm	False	PBEWITHHMACSHA512ANDAES_256
jasypt.encryptor.key-obtention-iterations	False	1000
jasypt.encryptor.pool-size	False	1
jasypt.encryptor.provider-name	False	SunJCE
jasypt.encryptor.provider-class-name	False	null
jasypt.encryptor.salt-generator-classname	False	org.jasypt.salt.RandomSaltGenerator
jasypt.encryptor.iv-generator-classname	False	org.jasypt.iv.RandomIvGenerator
jasypt.encryptor.string-output-type	False	base64
jasypt.encryptor.proxy-property-sources	False	false
jasypt.encryptor.skip-property-sources	False	empty list
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值