欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springbooot整合dynamic?datasource數(shù)據(jù)庫密碼加密方式

 更新時間:2024年01月24日 08:39:36   作者:今天寫bug了嗎?  
這篇文章主要介紹了springbooot整合dynamic?datasource?數(shù)據(jù)庫密碼加密方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

該文檔主要用于在springboot中利用baomidou整合多數(shù)據(jù)源時候,如果需要對數(shù)據(jù)庫密碼進(jìn)行加密該進(jìn)行哪些操作。

1.引入依賴

 		<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.2.1</version>
        </dependency>

2.生成密鑰私鑰

    public static void main(String[] args) throws Exception {
        //CryptoUtils 為自帶工具 keySize 密鑰越長,安全性越高
        String[] strings = CryptoUtils.genKeyPair(512);
        System.out.println("公鑰:"+strings[0]);
        System.out.println("私鑰:"+strings[1]);
    }

輸出結(jié)果:

公鑰用于加密,私鑰用于解密,基于Rsa算法進(jìn)行的加密

公鑰:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAvFj7PQS+gOWPfpeDjS37qLikoJivZOdx4KbjuLFHENS7F10ztjKFx+MUt3iOmQO8nCYdwOZJeS2ky5Oof6HI1wIDAQABAkEAmvqE0HKk5p798eZuQq8BkpVMMTExsU+YLohkfMayeS+E7/Yp2fG2XyrQfMh8hQJ9C9bWW3iKr+icOssW3HkoYQIhAP5tAUAJZuYBkDIxpCJnDhCjhRoimENsz/PqjEizdVaPAiEAvYNQBxTKaEZ0r9fUPtyBItc36L9cPuFUrhS6w8k/zTkCIBRKx12/IjjYCRMnyGqCA6oqEJScC77c790JaPTnc0VbAiEAvFvxhLhDXVT50XShPkGIEIr8xNa95rmrosJzxvkV8vECH3TIKWgr09RmQztQh49xOu5ca0y7nXDIrEeg2AiktEE=
私鑰:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALxY+z0EvoDlj36Xg40t+6i4pKCYr2TnceCm47ixRxDUuxddM7YyhcfjFLd4jpkDvJwmHcDmSXktpMuTqH+hyNcCAwEAAQ==

        // 公鑰加密
        String encrypt = CryptoUtils.encrypt(s1, "password");
        System.out.println("密碼加密為:"+ encrypt);
        // 私鑰進(jìn)行解密
        System.out.println("密碼解密為:"+CryptoUtils.decrypt(s2,encrypt));

3.進(jìn)行yml配置

spring: 
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        loginUsername: admin
        loginPassword: 123456
    dynamic:
      druid:
        initial-size: 5
        min-idle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 'X'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        filters: stat,wall,slf4j
        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      datasource:
          master:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://xxxx.xx.xxxxx:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            username: root
           # ENC()括號內(nèi)就為加密的密碼;
            password: ENC(b5YQRCK++Ek9nNawxXfwvVxbufXJORqMHM5Pv9W0VMSuN+UCZec7bakQV4ZOo025WM7Cf/iV4E5RgVaPF5SSVQ==)
            #注意:public-key為剛才生成私鑰:但直接放入配置文件不安全,建議放入到啟動項中
            public-key: ${publicKey}
          # 從庫數(shù)據(jù)源
          slave:
            driver-class-name: org.postgresql.Driver
            url: jdbc:postgresql://xxxxxxxx:5432/test2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            username: root
            password: ENC(b5YQRCK++Ek9nNawxXfwvVxbufXJORqMHM5Pv9W0VMSuN+UCZec7bakQV4ZOo025WM7Cf/iV4E5RgVaPF5SSVQ==)
            public-key: ${publicKey}

注意:

  • 可以直接使用CryptoUtils.encrypt("password),則下列的public-key參數(shù)可以不配置,視為使用默認(rèn)rsa密鑰對(不推薦)
  • public-key與password為同一級,切記層級不能配錯

4.項目啟動項配置

java -jar xxxxx.jar --publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALxY+z0EvoDlj36Xg40t+6i4pKCYr2T.....

5.idea項目配置

6.注意事項

如果啟動報錯,可以嘗試去掉

druid@SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class})

因為部分項目可能引入了druid,又引用了苞米豆,會引發(fā)沖突

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 開發(fā)環(huán)境配置步驟(介紹)

    Java 開發(fā)環(huán)境配置步驟(介紹)

    下面小編就為大家?guī)硪黄狫ava 開發(fā)環(huán)境配置步驟(介紹)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java通過正則表達(dá)式獲取域名簡單示例

    Java通過正則表達(dá)式獲取域名簡單示例

    在Java中可以使用正則表達(dá)式來從字符串中匹配和提取域名,下面這篇文章主要給大家介紹了關(guān)于Java通過正則表達(dá)式獲取域名的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • springsecurity輕松實現(xiàn)角色權(quán)限的示例代碼

    springsecurity輕松實現(xiàn)角色權(quán)限的示例代碼

    這篇文章主要介紹了springsecurity輕松實現(xiàn)角色權(quán)限的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 簡單學(xué)習(xí)Java+MongoDB

    簡單學(xué)習(xí)Java+MongoDB

    本文給大家介紹的是如何簡單的使用java+MongoDB實現(xiàn)數(shù)據(jù)調(diào)用的問題,非常的實用,有需要的小伙伴可以參考下
    2016-03-03
  • Unicode、UTF-8 和 ISO8859-1區(qū)別解析

    Unicode、UTF-8 和 ISO8859-1區(qū)別解析

    這篇文章主要介紹了Unicode、UTF-8 和 ISO8859-1到底有什么區(qū)別,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Spring?JPA使用CriteriaBuilder動態(tài)構(gòu)造查詢方式

    Spring?JPA使用CriteriaBuilder動態(tài)構(gòu)造查詢方式

    這篇文章主要介紹了Spring?JPA使用CriteriaBuilder動態(tài)構(gòu)造查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot Scheduling定時任務(wù)的示例代碼

    SpringBoot Scheduling定時任務(wù)的示例代碼

    springBoot提供了定時任務(wù)的支持,通過注解簡單快捷,對于日常定時任務(wù)可以使用。本文詳細(xì)的介紹一下使用,感興趣的可以了解一下
    2021-08-08
  • Java設(shè)計模式之策略模式解析

    Java設(shè)計模式之策略模式解析

    這篇文章主要介紹了Java設(shè)計模式之策略模式解析,在策略模式中,一個類的行為或其算法可以在運行時更改,這種類型的設(shè)計模式屬于行為型模式,需要的朋友可以參考下
    2023-10-10
  • Mybatis-Plus默認(rèn)主鍵策略導(dǎo)致自動生成19位長度主鍵id的坑

    Mybatis-Plus默認(rèn)主鍵策略導(dǎo)致自動生成19位長度主鍵id的坑

    這篇文章主要介紹了Mybatis-Plus默認(rèn)主鍵策略導(dǎo)致自動生成19位長度主鍵id的坑,本文一步步給大家分享解決方法,給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Java中接口和抽象類的區(qū)別詳解

    Java中接口和抽象類的區(qū)別詳解

    這篇文章主要介紹了Java中接口和抽象類的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論