springboot + jasypt 实现配置文件application.yaml敏感数据加密

简述

目前,在springboot项目开发中,基本都会有一个配置文件,或多或少在配置文件中有你想或者客户想加密的数据,这时jasypt工具就可以帮你实现,对于jasypt在这就不过多的阐述了,反正在开发界蛮受欢迎的,下面开始实践。

(阅读本文大概耗时1分钟)

实践

前置条件

springboot +maven项目

1、导入jasypt依赖

    
        com.github.ulisesbocchio
        jasypt-spring-boot-starter
        2.1.2
    

然后会在你的项目jar包里有这几个:

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第1张图片

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第2张图片

2、然后在配置文件设置加解密的key,这个key的长度尽量大于等于8,字符内容在非中文下随你组织。

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第3张图片

3、然后在jasypt-1.9.3.jar所在的文件夹下打开命令窗口并执行以下命令:

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第4张图片

java -cp jasypt-1.9.3.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="gfjj@123456" password=ypk

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第5张图片

4、将加密后的字符串复制到你的配置文件对应的属性中,并用 ENC()括住

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第6张图片
当然 org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI 这个类你可以直接在源码中找到:
springboot + jasypt 实现配置文件application.yaml敏感数据加密_第7张图片

5、OK,然后,我们建一个测试配置类读取这个属性值,看看是不是会自动帮我们自动解析:

springboot + jasypt 实现配置文件application.yaml敏感数据加密_第8张图片

实践成功,打印结果与明文一样。

总结

以后配置像数据库密码、Redis密码等敏感数据,我们就可以使用上面的方式,加密后再放到配置文件中。当然上面使用的
jasypt-spring-boot-starter是2.x.x版本的,3.x.x版本有些许变化,我会在下一篇文章继续做阐述相关用法

你可能感兴趣的:(springboot,java,后端,spring,boot,java,后端)