天天看點

SpringBoot內建jasypt對資料庫賬号和密碼加密處理

目錄

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