目录
1. 概述
2. 将账号和密码处理成密文
2.1 引入jasypt的pom依赖
2.2 生成密文
2.3 将密文写到配置文件中
3. 参考资料
1. 概述
在开发项目时,访问数据库的账号和密码,有时是需要加密后写在配置文件中的,这时候可以使用springboot + jasypt来轻松实现。
2. 将账号和密码处理成密文
2.1 引入jasypt的pom依赖
项目中使用的springboot版本是2.1.8,使用的jasypt版本是2.1.2,如下
<!--配置文件加解密依赖 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
2.2 生成密文
例如我们的账号是
yourName/yourPwd
经过下面的代码加密处理
import org.jasypt.util.text.BasicTextEncryptor;
//对账号和密码进行加密处理
public void run() {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//加密所需的salt(盐)
textEncryptor.setPassword("com.fragrans");
//要加密的数据(数据库的用户名和密码密码)
String username = textEncryptor.encrypt("yourName");
String password = textEncryptor.encrypt("yourPwd");
System.out.println("uName:" + username + "=>" + textEncryptor.decrypt(username));
System.out.println("uPwd:" + password + ">" + textEncryptor.decrypt(password));
}
2.3 将密文写到配置文件中
在application.yml填上参数配置:
## 数据库密码加密配置
jasypt:
encryptor:
password: com.dac
将db账号和密码的密文写入到配置文件中
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
#MySQL配置
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: ENC(adf4rFfxcxoZZadferXBR==)
password: ENC(deh345h72GjD+6ytruid0BVfdgjs)
如上面的
username: ENC(adf4rFfxcxoZZadferXBR==)
password: ENC(deh345h72GjD+6ytruid0BVfdgjs)
注意:要将加密后的密文,放到ENC()的括号里,只有这样才会生效
3. 参考资料
https://www.cnblogs.com/july-sunny/p/12248552.html