Spring boot 配置文件明文密码加解密

jasypt 是一个简单易用的加密Java库,使用起来非常简单。

现在我们系统中的一些配置文件中密码还是暴露的,打开配置文件,就能看到密码,如图:
Spring boot 配置文件明文密码加解密_第1张图片
这情况我们如果不想让别人看到数据库密码,所以就要对数据库密码进行加解密
通过jasypt 就可以简单实现

使用方法:
以spring boot 为例
1、 在你的pom.xml配置文件 中增加jasypt 依赖:

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

2、增加jasypt依赖后,生成你要加密的密码
从你本地的maven仓库中 找到已经下载的jasypt .jar包,然后进入这个包所在的文件夹下。
Spring boot 配置文件明文密码加解密_第2张图片
按着Shift 键+鼠标右键 出选择列表 ,选择在此处打开Powershell窗口(每个电脑显示的可能不一样)
Spring boot 配置文件明文密码加解密_第3张图片
在弹出窗口输入下面命令 ,回车
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=“jasypt@2020” password=jasypt algorithm=PBEWithMD5AndDES
如图
Spring boot 配置文件明文密码加解密_第4张图片
input的值就是原密码(要加密的明文密码)。
password的值就是参数jasypt.encryptor.password指定的值,即秘钥(要配置在你的配置文件中)
algorithm:加密的算法

3、修改配置文件 在配置文件中增加jasypt.encryptor.password = jasypt,这是加密的秘钥;这个密钥的密码必须和你生产加密的密码中password保持一致

如图:
Spring boot 配置文件明文密码加解密_第5张图片
4、替换配置文件中的数据库密码,将替换成由2步生成的加密密码,格式ENC(加密字符串),例如 ENC(uljnfOmxyvzgniqjXAZoAvx+NYan8MO6),如图
Spring boot 配置文件明文密码加解密_第6张图片
5、Application.java上增加注解@EnableEncryptableProperties 就ok了 如图:
Spring boot 配置文件明文密码加解密_第7张图片

这样就可以实现,简单的加密了,还有一种方法不需要加注解。

你可能感兴趣的:(Spring boot 配置文件明文密码加解密)