国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot項(xiàng)目application配置文件數(shù)據(jù)庫密碼上傳git暴露問題解決方案

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot項(xiàng)目application配置文件數(shù)據(jù)庫密碼上傳git暴露問題解決方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SpringBoot項(xiàng)目application配置文件數(shù)據(jù)庫密碼上傳git暴露問題解決方案

問題

問題:

項(xiàng)目中含有配置文件,配置文件中含有數(shù)據(jù)庫的用戶名和密碼,上傳git直接對(duì)外網(wǎng)開放。那后果會(huì)怎樣可想而知。

jasypt 加解密

jasypt(Java Simplified Encryption)是一個(gè)簡(jiǎn)化的開源 Java 加密工具庫

Springboot引入jasypt

<!-- Java Simplified Encryption-->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

加解密測(cè)試

@Test
public void test1(){
    // 參考 https://github.com/ulisesbocchio/jasypt-spring-boot
    PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
    SimpleStringPBEConfig config = new SimpleStringPBEConfig();
    // 加密密碼
    config.setPassword("123456");
    // 默認(rèn)值
    // 加密算法
    config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
    // 設(shè)置密鑰獲取迭代次數(shù)。在生成加密密鑰時(shí),會(huì)對(duì)密碼進(jìn)行多次迭代操作,以增加密鑰的復(fù)雜度。
    config.setKeyObtentionIterations("1000");
    config.setPoolSize("1");
    config.setProviderName("SunJCE");
    config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
    config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
    config.setStringOutputType("base64");
    encryptor.setConfig(config);
    String encrypt = encryptor.encrypt("hello ...");
    System.out.println("加密后: " + encrypt);
    String decrypt = encryptor.decrypt(encrypt);
    System.out.println("解密后: " + decrypt);

}

輸出

加密后: nOvch7+afYNA0xcbPQq1yzmK0yLj7GmCQR6YpVFH61IkMnTEULVgJz2b2yU3DKbs
解密后: hello ...

springboot使用jasypt

使用很簡(jiǎn)單,只需要引入jasypt-spring-boot-starter依賴,然后將配置文件中的明文換成"ENC(密文即可)“,例如密碼為"hello …”,加密密碼為"123456",加密之后的密碼為"nOvch7+afYNA0xcbPQq1yzmK0yLj7GmCQR6YpVFH61IkMnTEULVgJz2b2yU3DKbs"

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/scott?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: ENC(nOvch7+afYNA0xcbPQq1yzmK0yLj7GmCQR6YpVFH61IkMnTEULVgJz2b2yU3DKbs)

項(xiàng)目啟動(dòng)時(shí)添加啟動(dòng)參數(shù)"-Djasypt.encryptor.password=123456"

SpringBoot項(xiàng)目application配置文件數(shù)據(jù)庫密碼上傳git暴露問題解決方案,spring boot,數(shù)據(jù)庫,git

SpringBoot項(xiàng)目application配置文件數(shù)據(jù)庫密碼上傳git暴露問題解決方案,spring boot,數(shù)據(jù)庫,git

原理簡(jiǎn)單解析

拿到配置信息>判斷配置信息是否以"ENC(“開頭并且以”)"結(jié)尾,如果是就拿到提取出密文>獲取到加解密key>使用jasypt解密密文>將密文替換為明文

注意:在運(yùn)行環(huán)境是可以拿到明文的,例如通過@Value(“${spring.datasource.password}”)拿到的依然是明文,但在源碼級(jí)別是看不到明文的,而且加解密密碼是通過環(huán)境變量提供的,所以即便別人看到密文也解不開,也訪問不了我們的數(shù)據(jù)庫.文章來源地址http://www.zghlxwxcb.cn/news/detail-851380.html

到了這里,關(guān)于SpringBoot項(xiàng)目application配置文件數(shù)據(jù)庫密碼上傳git暴露問題解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)庫課程設(shè)計(jì)-學(xué)生選課管理系統(tǒng)(實(shí)訓(xùn)報(bào)告+答辯ppt+源碼+sql文件+打包好的程序)springboot項(xiàng)目-javaweb

    數(shù)據(jù)庫課程設(shè)計(jì)-學(xué)生選課管理系統(tǒng)(實(shí)訓(xùn)報(bào)告+答辯ppt+源碼+sql文件+打包好的程序)springboot項(xiàng)目-javaweb

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版權(quán):本文為博主 ChenZhen 的原創(chuàng)文章,本文版權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 如果對(duì)你有幫助,請(qǐng)給一個(gè)小小的star? 源碼加vx : ChenZhen_7 (實(shí)訓(xùn)報(bào)告+答辯ppt+源碼+sql文件+打包好的程序 無套路 免費(fèi)獲??! 不放

    2024年02月11日
    瀏覽(29)
  • python Flask項(xiàng)目使用SQLalchemy連接數(shù)據(jù)庫時(shí),出現(xiàn)RuntimeError:Working outside of application context.的解決過程記錄

    在使用python的Flask框架跟著教程編寫項(xiàng)目時(shí),我跟著教程使用了三個(gè)文件來組織,分別是main.py(主程序),module.py(數(shù)據(jù)庫模型),controller.py(藍(lán)圖模塊程序,用Blueprint銜接) 在主程序中,創(chuàng)建app、SQLalchemy實(shí)例對(duì)象db并將二者綁定 在module.py中,導(dǎo)入主程序中的db和app,創(chuàng)建

    2024年02月09日
    瀏覽(22)
  • SpringBoot項(xiàng)目連接數(shù)據(jù)庫

    SpringBoot項(xiàng)目連接數(shù)據(jù)庫

    1、找到applications.yml,如下圖 ?2、寫入代碼 ?

    2024年02月15日
    瀏覽(23)
  • SpringBoot如何配置數(shù)據(jù)庫

    項(xiàng)目啟動(dòng)需要一個(gè)鏈接數(shù)據(jù)庫,所以在此記錄一下。 根據(jù)配置文件的后綴書寫格式略有不同。 此處以MySQL為例,使用Maven為例 若是.yaml后綴的配置文件,那么端口書寫為 解釋: ①導(dǎo)入數(shù)據(jù)源和JDBC驅(qū)動(dòng) 的依賴包 ②配置文件中配置數(shù)據(jù)庫 ③開始使用

    2024年02月11日
    瀏覽(17)
  • springboot 配置不連接數(shù)據(jù)庫啟動(dòng)

    springboot 配置不連接數(shù)據(jù)庫啟動(dòng)

    啟動(dòng)項(xiàng)目的時(shí)候不需要配置連接數(shù)據(jù)庫 已經(jīng)連接數(shù)據(jù)庫的項(xiàng)目臨時(shí)不連接數(shù)據(jù)庫啟動(dòng) ????報(bào)如下錯(cuò)誤:也就是說數(shù)據(jù)源的url沒有配置。要么把報(bào)錯(cuò)數(shù)據(jù)源配上,要么排除掉數(shù)據(jù)源的加載。這里當(dāng)然是后者了,把數(shù)據(jù)源加載排除。 mysql數(shù)據(jù)庫驅(qū)動(dòng) druid數(shù)據(jù)庫連接池 報(bào)錯(cuò)內(nèi)容

    2024年02月11日
    瀏覽(24)
  • springboot 數(shù)據(jù)庫連接池配置(hikari)

    JBDC ? ? ? ? JABC是JAVA訪問關(guān)系型數(shù)據(jù)庫的標(biāo)注API,它為各種關(guān)系型數(shù)據(jù)的訪問提供統(tǒng)一的接口標(biāo)準(zhǔn),然后,各個(gè)關(guān)系型數(shù)據(jù)庫廠商按照J(rèn)BDC的標(biāo)準(zhǔn),提供能使JAVA訪問的驅(qū)動(dòng)包。一般情況下,在JAVA中執(zhí)行一條SQL語句,需要以下幾個(gè)步驟: 狀態(tài)JDBC驅(qū)動(dòng)程序 建立數(shù)據(jù)庫連接 創(chuàng)建

    2024年02月09日
    瀏覽(24)
  • Springboot項(xiàng)目連接neo4j數(shù)據(jù)庫

    首先創(chuàng)建一個(gè)springboot項(xiàng)目,這里不再介紹。 連接 neo4j 數(shù)據(jù)庫的依賴包 spring-boot-starter-data-neo4j依賴包 mybatis-plus依賴包

    2024年02月12日
    瀏覽(23)
  • SpringBoot項(xiàng)目整合MybatisPlus并使用SQLite作為數(shù)據(jù)庫

    SpringBoot項(xiàng)目整合MybatisPlus并使用SQLite作為數(shù)據(jù)庫

    SQLite 是一個(gè)進(jìn)程內(nèi)庫,它實(shí)現(xiàn)了 獨(dú)立的、無服務(wù)器的、零配置 的事務(wù)性 SQL 數(shù)據(jù)庫引擎。SQLite 沒有單獨(dú)的服務(wù)器進(jìn)程。 SQLite直接讀取和寫入普通磁盤文件,就是一個(gè)完整的 SQL 數(shù)據(jù)庫 , 包含多個(gè)表、索引、 觸發(fā)器和視圖包含在單個(gè)磁盤文件中 。 數(shù)據(jù)庫文件格式是跨平臺(tái)

    2024年01月21日
    瀏覽(56)
  • 【精·超詳細(xì)】SpringBoot 配置多個(gè)數(shù)據(jù)源(連接多個(gè)數(shù)據(jù)庫)

    【精·超詳細(xì)】SpringBoot 配置多個(gè)數(shù)據(jù)源(連接多個(gè)數(shù)據(jù)庫)

    目錄 1.項(xiàng)目路徑 2.pom.xml? 引入依賴: 3.application.yml配置文件: 4.兩個(gè)entity類 5.Conroller 6.兩個(gè)Service以及兩個(gè)ServiceImpl? 7.兩個(gè)Mapper及兩個(gè)Mapper.xml? 8.運(yùn)行Application? 然后在瀏覽器請(qǐng)求 9.查看兩個(gè)數(shù)據(jù)庫是否有新增數(shù)據(jù) ? ? ? ? ? 總結(jié): 1.pom.xml 引入依賴: dynamic-datasource-spring-b

    2024年02月12日
    瀏覽(41)
  • Springboot 實(shí)踐(3)配置DataSource及創(chuàng)建數(shù)據(jù)庫

    ????????前文講述了利用MyEclipse2019開發(fā)工具,創(chuàng)建maven工程、加載springboot、swagger-ui功能。本文講述創(chuàng)建數(shù)據(jù)庫,為項(xiàng)目配置數(shù)據(jù)源,實(shí)現(xiàn)數(shù)據(jù)的增刪改查服務(wù),并通過swagger-ui界面舉例調(diào)試服務(wù)控制器 創(chuàng)建數(shù)據(jù)庫 項(xiàng)目使用MySQL 8.0.31數(shù)據(jù),數(shù)據(jù)庫的庫表結(jié)構(gòu)的建立可行方式

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包