前言
对很多人来说,项目中习惯会把数据库的账号密码直接用明文写在配置文件中,其实这样并不是特别好,虽然是方便查看,但是也不太安全。所以这篇文章主要是一款轻量级加密工具的使用介绍。
参考资料
- Jasypt 官方文档
使用方式
Maven
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
加密工具类 JasyptUtil
public class JasyptUtil {
public static void main(String[] args) {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
// 加密所需的 salt(盐)
textEncryptor.setPassword("salt");
// 要加密的数据(数据库的用户名或密码)
String username = textEncryptor.encrypt("username");
String password = textEncryptor.encrypt("password");
System.out.println("username:" + username);
System.out.println("password:" + password);
}
}
运行结果如下:
配置文件修改
DataSource 配置
spring:
datasource:
name: druid
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
# 填写自己的url
url:
# JasyptUtil 生成的用户名,用 ENC() 括起来
username: ENC(iiD/LUL6LZJ8Iz/B4sgM5zRppqQdP+SR)
# JasyptUtil 生成的密码,用 ENC() 括起来
password: ENC(t6F14gkW7IGE4PysJvbCNLLtPXstsA+t)
盐配置
注:这里需要配置好启动才能正确识别,否则会报错。
# 配置 JasyptUtil 使用的盐
jasypt:
encryptor:
password: salt
启动测试
运行项目,如果可以正常启动则说明配置通过。