Durid用戶,密碼加密

1、application.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#數(shù)據(jù)庫賬號(hào)
spring.datasource.username=K4NWAGWajCMwIOpm/QUgZwh+kY+dXYaS2C8UbSQlYh7uCsxv8fPPm3j1ObQ==
#數(shù)據(jù)庫密碼
spring.datasource.password=PrV7ZKPAMsHNO+nOyUb6kg44wDdKEL8xrhrEPAv4fXFS2ijLNW044glIQ==

# DataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
#加上config
spring.datasource.filters=stat,wall,log4j,config
#加上config.decrypt=true;config.decrypt.key=${spring.datasource.publickey}
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${spring.datasource.publickey}
#公鑰
spring.datasource.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIWtxv6jBv0l662q/T9UFnQNia92Uht929bH0BrJzSqzMoYMWffmzFdLW9Zp0xJpfER8qCGMc+3zyyPwHe0jYAcCAwEAAQ==
spring.datasource.druid.filter.config.enabled=true

2、數(shù)據(jù)源配置類

        datasource.setUrl(this.dbUrl);
        datasource.setUsername(ConfigTools.decrypt(publickey,username));
        datasource.setPassword(ConfigTools.decrypt(publickey,password));

3、附屬,加密類

import java.security.NoSuchProviderException;
import com.alibaba.druid.filter.config.ConfigTools;
public class DruidEncrypt {
public static void main(String[] args) throws Throwable, NoSuchProviderException {
    //密碼
    String password = "mypwd";
    String username = "myuseraccount";
    System.out.println("加密前的密碼:"+password);
    
    //生成秘鑰對(duì)
    String [] keyPair = ConfigTools.genKeyPair(512);
    //私鑰
    String privateKey = keyPair[0];
    //公鑰
    String publicKey = keyPair[1];
    
    //用私鑰加密后的密文
    username = ConfigTools.encrypt(privateKey, username);
    password = ConfigTools.encrypt(privateKey, password);
 
    System.out.println("privateKey:"+privateKey);
    System.out.println("publicKey:"+publicKey);
    System.out.println("加密后的用戶:"+username);  
    System.out.println("加密后的密碼:"+password);  
    String decryptUsername=ConfigTools.decrypt(publicKey, username);
    String decryptPassword=ConfigTools.decrypt(publicKey, password);
    System.out.println("解密后的username:"+decryptUsername);
    System.out.println("解密后的password:"+decryptPassword);
    
}
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,648評(píng)論 0 13
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,680評(píng)論 1 32
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,031評(píng)論 0 11
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,371評(píng)論 0 5
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 24. Externalized Co...
    SnailTyan閱讀 2,139評(píng)論 1 2

友情鏈接更多精彩內(nèi)容