springboot2.0利用druid加密數(shù)據(jù)庫(kù)賬號(hào)密碼配置文件

依賴(lài)

        <!-- druid數(shù)據(jù)源驅(qū)動(dòng) -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency> 

加密

新建個(gè)測(cè)試方法,加密下得到密文跟公鑰。

import com.alibaba.druid.filter.config.ConfigTools;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;
import java.util.Map;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DruidTest {

    @Test
    public void encrypt() throws Exception {
        //密碼明文
        String password = "123456";
        System.out.println("明文密碼: " + password);
        String[] keyPair = ConfigTools.genKeyPair(512);
        //私鑰
        String privatekey = keyPair[0];
        //公鑰
        String publickey = keyPair[1];

        //用私鑰加密后的密文
        password = ConfigTools.encrypt(privatekey, password);

        System.out.println("privatekey:" + privatekey);
        System.out.println("publickey:" + publickey);
        System.out.println("password:" + password);
        //用公鑰解密
        String decryptPassword = ConfigTools.decrypt(publickey, password);
        System.out.println("decryptPassword:" + decryptPassword);
    }

}

得到私鑰(privatekey )、公鑰(publickey )、加密后的密碼(password)如下:

明文密碼: 123456
privatekey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAjmtKvCDGiybqxDWVvEkCeSifnSkvOcsEHZmBfac6noUMl8oOl1DwY4N66Yfalgs/0RGh2BWT5maYYgrLxy7+RwIDAQABAkEAh8NLqO7tlXTx0zzpkmVe0DSjg2PhOwyGzdipkii6PqVRBs8bzL74vGrp9j2SFq0NegdJVR5hgRO4JfEp8k/5cQIhAOMWIeMqvodDberoLfJ+I9+cU1s+rItWvPaDmiG31oktAiEAoI1u47C2rW2p1RJLA6MbOj+oC1QR8kvl4UMEWJVVJcMCIEHyM3Uc/KebVVhahL1fFFvjsfFVihYM4mNUZHZWRN8hAiEAleX21lay+BEfM3Q03Vx3m1a7ingfmV0Lb9mmQR6LtQkCIDx67fr+qHABDTVugYOEFqf7sdcIurE8wYelOGWLiFZM
publickey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI5rSrwgxosm6sQ1lbxJAnkon50pLznLBB2ZgX2nOp6FDJfKDpdQ8GODeumH2pYLP9ERodgVk+ZmmGIKy8cu/kcCAwEAAQ==
password:Aw0LEdG1J0M4jtOdC7or7xSlsCclnmkMdJgQ+c9slXmny67Z9Y//xy1wlihsnkSLFx9XhFe7/pcPn6Lg09IdGw==
decryptPassword:123456

配置


spring:
  datasource:
    # 使用阿里的Druid連接池
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
    # 填寫(xiě)你數(shù)據(jù)庫(kù)的url、登錄名、密碼和數(shù)據(jù)庫(kù)名
    druid:
      url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test
      username: sa
      password: Aw0LEdG1J0M4jtOdC7or7xSlsCclnmkMdJgQ+c9slXmny67Z9Y//xy1wlihsnkSLFx9XhFe7/pcPn6Lg09IdGw==
      publickey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI5rSrwgxosm6sQ1lbxJAnkon50pLznLBB2ZgX2nOp6FDJfKDpdQ8GODeumH2pYLP9ERodgVk+ZmmGIKy8cu/kcCAwEAAQ==
        # 這里有個(gè)坑
      connect-properties:
        config.decrypt: true
        config.decrypt.key: ${spring.datasource.druid.publickey}
      # 初始連接數(shù)
      initialSize: 10
      # 最大連接池?cái)?shù)量
      maxActive: 50
      # 最小連接池?cái)?shù)量
      minIdle: 10
      # 配置獲取連接等待超時(shí)的時(shí)間
      maxWait: 60000
      # 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒
      minEvictableIdleTimeMillis: 300000
      # 配置一個(gè)連接在池中最大生存的時(shí)間,單位是毫秒
      maxEvictableIdleTimeMillis: 900000
      # 配置檢測(cè)連接是否有效
      validationQuery: SELECT 1
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      webStatFilter:
        enabled: true
      statViewServlet:
        enabled: true
        url-pattern: /monitor/druid/*
      filter:
        config:
          enabled: true
        stat:
          enabled: true
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: false
        wall:
          config:
            multi-statement-allow: true
最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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