hooyantsing's Blog

白银篇_P9_配置文件敏感字段加密

字数统计: 391阅读时长: 1 min
2020/07/18

配置文件敏感字段加密

20年全新-Spring Boot 2.x从青铜到王者之白银篇-打造精品中的精品-程序员-编程-架构师-SpringBoot

jasypt

jasypt官网

原理:

300596734303def1894ab8e72b72546a.png

加密

通过GitHub下载jasypt发行版。

jasypt-1.9.3

首先,到官网下载 jasypt 。下载完成后,从里面找到 jasypt-1.9.3.jar ,将其和下面编写的 jasypt.bat 脚本放在同一目录下。

jasypt.bat

1
2
3
4
5
6
@echo off
set/p input=待加密的明文字符串:
set/p password=加密密钥(盐值):

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=%input% password=%password% algorithm=PBEWithMD5AndDES
pause

运行 jasypt.bat 脚本。

输入 明文密钥(自定义的密码)

获得密文:GjZmbqS3kYza+GEmRdGHQp6lLnRlEpwp8da035715c525e85450b15e620c8b3a5.png

ENC(密文) 替换掉配置文件里的明文。

family.yml

1
2
3
family:  
family-name: ENC(GjZmbqS3kYza+GEmRdGHQp6lLnRlEpwp)
# more code ...

至此,完成加密工作。

解密

依赖

1
2
3
4
5
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>1.18</version>
</dependency>

使用

测试方便,将密钥写在了application配置文件里,实际生成环境中,严禁这样做!

在生产环境中如何配置密钥,请看下面。

application-prod.yml

1
2
3
4
5
# 设置盐值(加密解密密钥),我们配置在这里是为了测试方便
# 生产环境中,切记不要这样直接进行设置,可通过环境变量,命令行等形式进行设置
jasypt:
encryptor:
password: 123456

在生产环境中使用密钥

通过命令行传参。

1
2
# 命令 jar包 ch
java -jar boot-launch-1.0.jar --jasypt.encryptor.password=123456
CATALOG
  1. 1. 配置文件敏感字段加密
    1. 1.1. jasypt
    2. 1.2. 加密
    3. 1.3. 解密
      1. 1.3.1. 依赖
      2. 1.3.2. 使用
      3. 1.3.3. 在生产环境中使用密钥