目錄
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