jasypt介绍jasypt是一个java库,它允许开发员以最少的努力为他/她的项目添加基本的加密功能,并且不需要对加密工作原理有深入的了解
用于单向和双向加密的高安全性、基于标准的加密技术。加密密码,文本,数字,二进制文件...
适合集成到基于spring的应用程序中,开放api,用于任何jce提供程序...
添加如下依赖:
<dependency> <groupid>com.github.ulisesbocchio</groupid> <artifactid>jasypt-spring-boot-starter</artifactid> <version>2.1.1</version> </dependency>
jasypt好处 保护我们的系统安全,即使代码泄露,也可以保证数据源的绝对安全。
应用场景 对配置文件中的所有账号密码进行加密,以及想加密的东西进行加密。
使用方式 通过密钥对账号或者密码进行加解密,项目启动时候对密文进行解密。
实战使用加解密工具类
import org.jasypt.util.text.basictextencryptor;/******************************************************************************** ** @author : zyj ** @date :2023/04/26 ** @description :jasypt加密解密 *********************************************************************************/public class jasypt { public static void main(string[] args) { basictextencryptor basictextencryptor = new basictextencryptor(); //加密的密钥 basictextencryptor.setpassword("jasypt"); //密码进行加密 string encrypt = basictextencryptor.encrypt("密码:123456"); //密码进行解密 string decrypt = basictextencryptor.decrypt(encrypt); //结果输出 system.out.println("加密后的结果:"+encrypt); system.out.println("加密后的结果:"+decrypt); }}
修改配置文件,数据库账号密码加密,将密文使用enc()包含起来,放在括号里面,用enc()的意义在启动的时候解密加载。
在配置文件application.yml配置密钥,用指定的密钥进行解密
jasypt: encryptor: password: jasypt
不过这种方式不可取,代码泄露账号密码就和明文没什么区别,可以将密钥配置在环境变量中,直接做为系统环境变量进行加载!!
密钥通过环境变量方式进行指定,修改配置文件,将密钥换成环境变量名称,以${环境变量名称}的形式,在启动的时候通过环境变量名称寻找变量值,也就是我们的密钥!!!
jasypt:
encryptor:
#环境变量变量名称
password: ${jasypt_password}
windows环境变量方式指定注意:在windows配置完环境变量的时候需要关闭idea重新打开,让它加载环境变量。
linux环境变量方式进行指定编辑环境变量文件
vim /etc/profile
在最下方添加
export jasypt_password=jasypt
保存退出刷新环境变量
source /etc/profile
以上就是springboot怎么集成jasypt实现配置文件加密的详细内容。