最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合jasypt加密配置文件敏感信息

 更新時(shí)間:2024年06月02日 10:14:09   作者:llp1110  
在項(xiàng)目中我們需要對(duì)配置文件的一些敏感信息進(jìn)行加密處理,比如數(shù)據(jù)庫賬戶密碼,避免直接暴露出來,這種場(chǎng)景常常用于生產(chǎn)環(huán)境,我們不想讓開發(fā)人員知道生產(chǎn)庫的密碼,有運(yùn)維人員統(tǒng)一管理,所以本文給大家介紹了SpringBoot整合jasypt加密配置文件敏感信息

SpringBoot整合jasypt加密配置文件敏感信息

在項(xiàng)目中我們需要對(duì)配置文件的一些敏感信息進(jìn)行加密處理,比如數(shù)據(jù)庫賬戶密碼,避免直接暴露出來,這種場(chǎng)景常常用于生產(chǎn)環(huán)境,我們不想讓開發(fā)人員知道生產(chǎn)庫的密碼,有運(yùn)維人員統(tǒng)一管理。

  • 引入依賴
<dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>3.0.4</version>
        </dependency>
  • 加密工具類
public class JasyptUtils {
    public static void main(String[] args) {
        //這里假設(shè)我們的數(shù)據(jù)庫密碼是root
        String info = encrypt("root");
        //加密 TCFVL/wsN9AxelTDQyP/3g==
        System.out.println(info);
        //解密 root
        System.out.println(decrypt(info));
    }

    /**
     * 加密
     *
     * @param plaintext 明文
     * @return
     */
    public static String encrypt(String plaintext) {
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
        // 指定算法
        config.setAlgorithm("PBEWithMD5AndDES");
        // 指定秘鑰,和yml配置文件中保持一致
        config.setPassword("llp");
        encryptor.setConfig(config);
        // 生成加密數(shù)據(jù)
        return encryptor.encrypt(plaintext);
    }

    /**
     * 解密
     *
     * @param data 加密后數(shù)據(jù)
     * @return
     */
    public static String decrypt(String data) {
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
        config.setAlgorithm("PBEWithMD5AndDES");
        config.setPassword("llp");
        encryptor.setConfig(config);
        // 解密數(shù)據(jù)
        return encryptor.decrypt(data);
    }
}
  • 啟動(dòng)類
@SpringBootApplication
@MapperScan(basePackages = "com.llp.jasypt.mapper")
public class JasyptApplication {
    public static void main(String[] args) {
        SpringApplication.run(JasyptApplication.class, args);
    }
}
  • application.yml配置文件

這里我們可以對(duì)需要加密的字段進(jìn)行加密處理,比如url、username、password 或者說redis的一些賬戶信息等等。

jasypt:
  encryptor:
    # 加密的秘鑰
#    password: llp
    # 加密算法
    algorithm: PBEWithMD5AndDES
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
    property:
      # 算法識(shí)別的前后綴,默認(rèn)ENC(),數(shù)據(jù)庫密文示例:password: "ENC(DzANBAhBWXxZqAOsagIBCoaw8FV4gYRbid7G70UEM24=)"
      prefix: Enc(
      suffix: )

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/llp?autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true
    username: Enc(TCFVL/wsN9AxelTDQyP/3g==)
    password: Enc(TCFVL/wsN9AxelTDQyP/3g==)

#mybatis配置
mybatis:
  #指定要掃描的mapper.xml位置; classpath:mapper/*.xml 掃描在類路徑下的mapper目錄下的。xml文件
  mapper-locations: classpath:mapper/*.xml
  #配置類型別名,通常指定實(shí)體類所在包,這樣我們?cè)趚ml中resultType="com.llp.springboot.mybatis.bean.Monster"就可以簡(jiǎn)寫成Monster
  type-aliases-package: com.llp.springboot.jasypt.entity
  #配置mybatis sql打印日志
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #啟用自動(dòng)駝峰配置
    map-underscore-to-camel-case: true

  #通過config-location可以指定mybatis-config.xml,這樣就可以用傳統(tǒng)的方式來配置mybatis
  #config-location: classpath:mybatis-config.xml
  • 啟動(dòng)配置

通常我們不會(huì)將password寫在配置文件中,而是由運(yùn)維人員進(jìn)行統(tǒng)一管理,這樣開發(fā)人員只能看到密文而不知道解密的秘鑰

jasypt:
  encryptor:
    # 加密的秘鑰
#    password: llp
    # 加密算法
    algorithm: PBEWithMD5AndDES
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
    property:
      # 算法識(shí)別的前后綴,默認(rèn)ENC(),數(shù)據(jù)庫密文示例:password: "ENC(DzANBAhBWXxZqAOsagIBCoaw8FV4gYRbid7G70UEM24=)"
      prefix: Enc(
      suffix: )

如果打包后部署項(xiàng)目,可以使用如下命令在啟動(dòng)項(xiàng)目時(shí)指定秘鑰:

#方式1:
java -jar xxx.jar -Djasypt.encryptor.password=加密數(shù)據(jù)的秘鑰

#方式2:
java -jar xxx.jar --jasypt.encryptor.password=加密數(shù)據(jù)的秘鑰

idea中如何配置啟動(dòng)參數(shù)

-Djasypt.encryptor.password=llp

到此這篇關(guān)于SpringBoot整合jasypt加密配置文件敏感信息的文章就介紹到這了,更多相關(guān)SpringBoot jasypt加密敏感信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java并發(fā)編程synchronized底層實(shí)現(xiàn)原理

    java并發(fā)編程synchronized底層實(shí)現(xiàn)原理

    這篇文章主要介紹了java并發(fā)編程synchronized底層實(shí)現(xiàn)原理
    2022-02-02
  • 使用位運(yùn)算、值交換等方式反轉(zhuǎn)java字符串的多種方法(四種方法)

    使用位運(yùn)算、值交換等方式反轉(zhuǎn)java字符串的多種方法(四種方法)

    這篇文章主要介紹了使用位運(yùn)算、值交換等方式反轉(zhuǎn)java字符串,本文通過四種方式給大家講解,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring Data JPA 建立表的聯(lián)合主鍵

    Spring Data JPA 建立表的聯(lián)合主鍵

    這篇文章主要介紹了Spring Data JPA 建立表的聯(lián)合主鍵。本文詳細(xì)的介紹了2種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • java實(shí)現(xiàn)入棧push和出棧pop過程

    java實(shí)現(xiàn)入棧push和出棧pop過程

    文章詳細(xì)介紹了棧的概念、特點(diǎn)以及如何使用數(shù)組和鏈表實(shí)現(xiàn)棧,通過入棧(push)和出棧(pop)操作,展示了棧的數(shù)據(jù)處理過程,并提供了具體的代碼實(shí)現(xiàn)
    2024-12-12
  • Java使用itext5實(shí)現(xiàn)PDF表格文檔導(dǎo)出

    Java使用itext5實(shí)現(xiàn)PDF表格文檔導(dǎo)出

    這篇文章主要介紹了Java使用itext5實(shí)現(xiàn)PDF表格文檔導(dǎo)出,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • JAVA對(duì)象clone方法代碼實(shí)例解析

    JAVA對(duì)象clone方法代碼實(shí)例解析

    這篇文章主要介紹了JAVA對(duì)象clone方法代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 一文盤點(diǎn)五種最常用的Java加密算法

    一文盤點(diǎn)五種最常用的Java加密算法

    大家平時(shí)的工作中,可能也在很多地方用到了加密、解密,比如:支付功能等,所以本文為大家盤點(diǎn)了Java中五個(gè)常用的加密算法,希望對(duì)大家有所幫助
    2023-06-06
  • Springboot-yaml配置和自動(dòng)配置原理分析

    Springboot-yaml配置和自動(dòng)配置原理分析

    這篇文章主要介紹了Springboot-yaml配置和自動(dòng)配置原理分析,自動(dòng)配置原理是配置文件配置debug: true可以在控制臺(tái)打印自動(dòng)配置報(bào)告.可以打印所有的啟動(dòng)的自動(dòng)配置和沒有啟動(dòng)的自動(dòng)配置類,需要的朋友可以參考下
    2021-06-06
  • Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

    Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

    這篇文章主要介紹了Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存

    利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存

    鏈?zhǔn)浇Y(jié)構(gòu)不要求邏輯上相鄰的節(jié)點(diǎn)在物理位置上也相鄰,節(jié)點(diǎn)間的邏輯關(guān)系是由附加的指針字段表示的,通常借助于程序設(shè)計(jì)中的指針結(jié)構(gòu)來實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存的相關(guān)資料,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

凉山| 项城市| 宁南县| 平昌县| 新巴尔虎右旗| 剑河县| 彰武县| 蓬莱市| 兴海县| 溧阳市| 乌兰察布市| 江北区| 织金县| 龙里县| 周宁县| 客服| 东海县| 长治县| 丽江市| 桐乡市| 石林| 井冈山市| 石台县| 桦甸市| 上林县| 互助| 漯河市| 遂平县| 新乐市| 开封市| 略阳县| 泰来县| 武陟县| 屏东市| 嫩江县| 洛阳市| 利川市| 遵义市| 玉树县| 南华县| 乌兰县|