springboot2使用jasypt-spring-boot加

2021-12-20  本文已影响0人  侧身打腿

jasypt-springboot-demo

jasypt项目
jasypt-spring-boot项目
参考文档
示例代码

springboot 2结合jasypt-spring-boot对配置项进行用户无感的加解密,通常用来对数据库密码进行加解密等

jasypt-spring-boot-start工程底层依赖jasypt项目,将jasypt功能包装开箱即用的

1.配置

1.1.pom.xml

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

1.2.application.yml

最基本的配置项为:

  1. jasypt.encryptor.password
  2. 需要加密的配置项,默认格式为ENC(${密文})
    更多配置见jasypt-spring-boot项目
jasypt:
  encryptor:
    password: abcdefg123456 # 加密密钥
my:
  secret: ENC(WOW24hj7IB2iNagL9UNhXhBEvCs811tZPcRKPGqVmyXcBWXlsujrEmRmeupvfsDM) # 密码,格式ENC(${密文}),对数据库配置加密时就对spring.datasource.password进行处理

2.加解密

采用jasyptjar包进行加解密。由于该jar是jasypt-spring-boot-starter的底层依赖,在pom.xml中添加jasypt-spring-boot-starter依赖后,本地仓库中可以找到jasyptjar包

参数:

此例中:algorithm, ivGeneratorClassName的值采用jasypt-spring-boot项目中的默认值(即前文application.yml中未配置):
algorithm: PBEWITHHMACSHA512ANDAES_256
ivGeneratorClassName: org.jasypt.iv.RandomIvGenerator

2.1.加密

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=74520 password=abcdefg123456 algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator

注意:每次加密产生的密文不一样

2.2.解密

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=WOW24hj7IB2iNagL9UNhXhBEvCs811tZPcRKPGqVmyXcBWXlsujrEmRmeupvfsDM password=abcdefg123456 algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator

3.验证

启动本项目

curl localhost:8080/jasypt/test

获取结果为明文:74520则表示加解密成功

上一篇下一篇

猜你喜欢

热点阅读