亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 開(kāi)發(fā) > Java > 正文

Spring boot配置文件加解密詳解

2024-07-14 08:43:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

功能介紹

大家都知道在Spring boot開(kāi)發(fā)過(guò)程中,需要在配置文件里配置許多信息,如數(shù)據(jù)庫(kù)的連接信息等,如果不加密,傳明文,數(shù)據(jù)庫(kù)就直接暴露了,相當(dāng)于"裸奔"了,因此需要進(jìn)行加密處理才行。

在項(xiàng)目中使用jasypt-1.9.4.jar包,能夠?qū)崿F(xiàn)對(duì)明文進(jìn)行加密,對(duì)密文進(jìn)行解密。配置相關(guān)加密信息,就能夠?qū)崿F(xiàn)在項(xiàng)目運(yùn)行的時(shí)候,自動(dòng)把配置文件中已經(jīng)加密的信息解密成明文,供程序使用

下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧

使用說(shuō)明

1.pom引入依賴

<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.1</version></dependency>

2.配置文件application.yaml

******************加解密相關(guān)配置*******************jasypt: encrytor: #用來(lái)加解密的salt值 password: 123456 #用來(lái)使用新的算法,默認(rèn)為org.jasypt.salt.NoOPIVGenerator,這樣的話我們就無(wú)法使用命令行中生成的密文 ivGeneratorClassname: org.jasypt.salt.RandomIVGenerator

參數(shù)解釋:

  • password:加密時(shí)候要使用salt值
  • 對(duì)于ivGeneratorClassname,jara包中封裝類默認(rèn)為org.jasypt.salt.NoOpIVGenerator,這個(gè)時(shí)候我們?nèi)绻褂肑unit生成密文,那么只會(huì)生成24位密鑰,與命令行中用命令生成的不一樣,后面會(huì)詳細(xì)講解。

3.代碼解析

首先我們需要知道的事加解密的方法,只有知道了如何加密才能夠在配置文件中設(shè)置相關(guān)參數(shù)的密文,這里涉及到兩種方式的加密:

a.命令行加密

如果我們項(xiàng)目上線了,需要修改配置文件中的信息,這個(gè)時(shí)候我們可能要通過(guò)命令行的方式去加密(前提:保證你的salt值和你的項(xiàng)目中定義的一致)

I.找到maven倉(cāng)庫(kù)本地地址,如:C:/Users/kfzx-xuming/.m2/repository 在這里面找到j(luò)asypt-1.9.4.jar所在位置

Spring,boot,配置文件,加密

II.進(jìn)入文件夾,運(yùn)行cmd命令

加密:java -cp jasypt-1.9.4.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLIinput=pass1234password=12345algorithm=PBEWithMD5AndDES

參數(shù)說(shuō)明:

  • input:加上需要加密的明文
  • password:加上salt值(需要和項(xiàng)目中的application.yaml的password 一致)
  • algorithm:加上加密算法(默認(rèn)使用的就是PBEWithMD5AndDES)

這個(gè)時(shí)候我們可以看到下面的加密結(jié)果:

Spring,boot,配置文件,加密

下面的output中就是我們對(duì)明文pass1234使用salt值為12345加密的結(jié)果

解密:java -cp jasypt-1.9.4.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=pdFVCKrYnVOkTpeJ+081g70kzVWV2aLrTOK2EjrJkkSNMbu4C4IX+Q== password=12345 algorithm=PBEWithMD5AndDES

這個(gè)時(shí)候我們可以看到解密結(jié)果:

Spring,boot,配置文件,加密

b.在eclipse中用Junit運(yùn)行代碼對(duì)明文加密解密

前提已經(jīng)在配置文件中配置了jasypt相關(guān)信息

jasypt提供了封裝類StringEncryptor,可以通過(guò)代碼來(lái)加解密,我們可以使用這個(gè)類運(yùn)行相關(guān)方法

Junit相關(guān)代碼:

import org.jasypt.encryption.StringEncryptor;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static sun.plugin.javascript.navig.JSType.Embed; @RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class JasyptTest {  @Autowired StringEncryptor encryptor; //加密 @Test public void getPass(){ String name = encryptor.encrypt("hello"); System.out.println("加密結(jié)果:"+name);//解密 @Test public void passDecrypt(){ String username = encryptor.decrypt("7uBC9fVLpL05ipEPzgsDT6Qcjuq9HvDYc0VUIgP4hY="); System.out.println("解密結(jié)果:"+username); }}

運(yùn)行結(jié)果如下:

Spring,boot,配置文件,加密

這個(gè)時(shí)候我們就得到了想要的密文,直接粘貼到配置文件中即可

使用方法如下:

I.在配置文件application.yaml相關(guān)位置把明文替換成密文,用ENC()包裹:

************** 加解密相關(guān)測(cè)試配置信息***************test: code: username: ENC(pdFVCKrYnVOkTpeJ+081g70kzVWV2aLrTOK2EjrJkkSNMbu4C4IX+Q==)

II.在相應(yīng)的位置直接讀取使用即可,下面我們寫(xiě)一個(gè)controller類測(cè)試一下運(yùn)行解密的效果:

import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; @Controllerpublic class JasyptController {  @Value("${cmd.username}") private String cmdUsername;  @RequestMapping("/hello") public String testJasypt() { return cmdUserName; }}

這個(gè)時(shí)候我們啟動(dòng)項(xiàng)目就能夠看到我們?cè)倥渲弥性O(shè)置的密文對(duì)應(yīng)的明文

至此配置文件的加解密的使用方法就介紹完了

4.補(bǔ)充說(shuō)明

對(duì)于上述配置文件中的ivGeneratorClassname再進(jìn)行一個(gè)詳細(xì)的介紹

對(duì)于上述的Junit中使用的StringEncryptor封裝類,他是可以通過(guò)讀取配置文件中的信息進(jìn)行加解密相關(guān)參數(shù)進(jìn)行初始化,通過(guò)閱讀遠(yuǎn)嗎,我們可以發(fā)現(xiàn),初始化config的時(shí)候會(huì)跳轉(zhuǎn)到如下的地方進(jìn)行設(shè)置:

Spring,boot,配置文件,加密

如果在配置參數(shù)中沒(méi)有設(shè)置ivGeneratorClassname,那么默認(rèn)就是org.jasypt.salt.NoOpIVGenerator,那么在運(yùn)行加解密的時(shí)候就會(huì)生成一個(gè)24位的密文,如圖:

Spring,boot,配置文件,加密

但是我們可以看到上面用命令行生成的卻比這個(gè)廠,這個(gè)時(shí)候如果我們把命令行中生成的密文粘貼到配置文件中則springboot就會(huì)啟動(dòng)不了,Junit也會(huì)報(bào)錯(cuò)解析,把這個(gè)密文用命令解析發(fā)現(xiàn)也會(huì)報(bào)錯(cuò)

這個(gè)說(shuō)明命令行中的加解密不是通過(guò)StringEncryptor類來(lái)操作的,那是走那邊的呢?

通過(guò)查閱資料我們發(fā)現(xiàn)了下面的代碼:

package cn.linjk.ehome; import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;import org.junit.Test; public class JasyptTest { @Test public void testEncrypt() throws Exception { StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor(); EnvironmentPBEConfig config = new EnvironmentPBEConfig();  config.setAlgorithm("PBEWithMD5AndDES");  // 加密的算法,這個(gè)算法是默認(rèn)的 config.setPassword("12345");   // 加密的密鑰 standardPBEStringEncryptor.setConfig(config); String plainText = "hello"; String encryptedText = standardPBEStringEncryptor.encrypt(plainText); System.out.println(encryptedText); }}

這個(gè)時(shí)候我們運(yùn)行一下,得到下面的結(jié)果:

Spring,boot,配置文件,加密

把這個(gè)密文用命令進(jìn)行解密發(fā)現(xiàn)也是成功的,查看源碼(下圖):可以看出,命令行如果沒(méi)有設(shè)置ivGeneratorClassname那么默認(rèn)就會(huì)new RandomIVGenerator,就是這一步導(dǎo)致了生成了不一樣的密文:

Spring,boot,配置文件,加密

綜上所述,結(jié)合場(chǎng)景,如果我們是項(xiàng)目需要上線了,不方便運(yùn)行Junit去生成密文,填入配置文件,需要用命令行對(duì)明文加密,那一定要在配置文件中設(shè)置ivGeneratorClassname值?。。?/p>

公司電腦沒(méi)有辦法用外網(wǎng)上,圖片用手機(jī)拍的,如果感覺(jué)模糊,請(qǐng)見(jiàn)諒,大家相互學(xué)習(xí)~~~~~~

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
18免费在线视频| 欧美亚州在线观看| 国产主播喷水一区二区| 黄色免费观看网站| 欧美在线视频观看| 91亚洲午夜在线| 91免费综合在线| 天堂av网手机版| 午夜成人影视| 91精品国产亚洲| 国产高清一区二区三区| 天天操天天干天天操天天干| 亚洲欧美视频在线播放| 妖精视频成人观看www| 在线三级中文| 成人性生活免费看| jizzjizz在线观看| 国产精品日韩久久久久| 男人天堂一区二区| 欧美综合视频在线| 日韩hd视频在线观看| 最近2018中文字幕免费在线视频| 久久精品麻豆| 国产精品区一区| 欧美性少妇18aaaa视频| 91九色网站| 国产免费专区| 国产网站在线免费观看| 在线观看成人免费视频| 制服丝袜在线播放| 欧美激情综合色综合啪啪| 猛男欧美办公室激情在线| 无码人妻精品一区二区三区不卡| 日日躁夜夜躁白天躁晚上躁91| 久草福利资源在线视频| 午夜成人免费视频| 日本老妇乱子| 久久久精品黄色| www日本高清视频| 亚洲欧美日韩精品久久奇米色影视| 99久久精品国产一区| 午夜在线观看视频| 好看不卡的中文字幕| 日本少妇在线观看| 国产精品男人的天堂| 成**人特级毛片www免费| 18久久久久久| 精品999在线播放| 影音先锋男人在线| 欧美日韩精品福利| 亚洲三级在线免费观看| 精品国产自在久精品国产| 国产99久久九九精品无码免费| 欧美一区一区| 亚洲第一综合天堂另类专| 成人激情视频在线| 在线电影中文字幕| 成人激情黄色网| 亚洲图片欧美另类| 樱花草国产18久久久久| 欧美熟妇另类久久久久久多毛| 日本黄色a视频| av高清日电影| 色系网站成人免费| 性生交大片免费看女人按摩| 国产国产精品人在线视| 国产精品国产亚洲精品| 黑鬼狂亚洲人videos| 91国视频在线| 欧美自拍视频在线| 日本一区视频在线观看免费| 可以看美女隐私的网站| 一区二区三区在线播| 免费大片黄在线| 亚洲国产精品小视频| 性爱在线免费视频| 国产99久久久国产精品成人免费| 欧美日韩一二| 男人天堂电影网| 国产精品私拍pans大尺度在线| 亚洲精品白浆高清久久久久久| 激情成人开心网| 懂色av一区二区夜夜嗨| 天堂网一区二区| 97视频在线免费| 在线免费av网站| 日韩欧乱色一区二区三区在线| 久久久久中文字幕亚洲精品| 久久午夜激情| 亚洲在线一区二区| 9l视频白拍9色9l视频| 国产成人手机视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 天堂网中文字幕| 超碰97在线人人| 亚洲色图制服诱惑| 强迫凌虐淫辱の牝奴在线观看| 久久先锋影音av鲁色资源| 九色porny视频国产网曝| 久久久伊人日本| wwww在线观看免费视频| 国产日产精品一区二区三区| 国产精品视频一区二区在线观看| 99一区二区| 亚洲精品久久| 国内精品美女av在线播放| 亚洲人成网站精品片在线观看| 久久国产精品系列| 国产精品九九| 中文字幕乱码中文字幕| 中文国产在线观看| 天堂av在线7| 国产欧美久久久精品免费| 欧美精品自拍偷拍动漫精品| 亚洲成人黄色在线观看| 久久精品国产99国产精品澳门| 欧美激情成人在线视频| 欧美成人精品午夜一区二区| 欧美va日韩va| 妖精视频在线观看| 好吊色欧美一区二区三区四区| 宅男av一区二区三区| 午夜精品三级视频福利| 亚洲美女色视频| 久久成人免费观看| 夜夜添无码一区二区三区| 精品久久不卡| 欧美日韩国产精品一区二区亚洲| 国产精品一区二区av| 欧美精品自拍偷拍动漫精品| 日本中文字幕在线不卡| 在线中文字幕-区二区三区四区| 狠狠做深爱婷婷久久综合一区| av线上观看| 手机看片日韩国产| 992tv成人免费影院| 天天爱天天干天天操| 日韩动漫在线观看| 成人在线视频你懂的| 台湾av在线二三区观看| 免费av一区二区三区| 国产男女无遮挡猛进猛出| 日韩欧美中文字幕在线观看| 久久人人爽人人人人片| 免费视频一区三区| 色在线观看视频| 欧亚精品在线观看| 国产成人香蕉在线视频fuz| 亚洲一二三四五六区| 影音先锋中文字幕在线| 日日摸夜夜夜夜夜添| 亚洲精品天堂网| 国产啪精品视频| 毛片一区二区| 日韩一区二区三区在线| 亚洲视频一区在线观看| 野外性满足hd| 欧美黑人ⅹxxx另类猛交| 黄动漫视频高清在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 中文字幕一区视频| 国产性色一区二区| 中国女人精69xxxxxx视频| 亚洲激情 国产| 男女爱爱福利视频| 爽成人777777婷婷| 国产白丝一区二区三区| 欧美人与性动交xxⅹxx| 欧美午夜片在线免费观看| 色偷偷7777www人| 懂色av粉嫩av蜜臀av一区二区三区| 国产一级片在线播放| 特级毛片www| 激情91久久| 欧美久久一级| 亚洲一区二区三区久久久| 亚洲男人av在线| 高清视频一区二区三区四区| 成人免费网址在线| 免费福利视频一区二区三区| 99在线精品免费视频| 精品自拍偷拍视频| 91夜夜蜜桃臀一区二区三区| 欧美日韩在线观看成人| 亚洲黄色毛片| 精品久久人人做人人爱| 久久久久久久久久一区二区三区| 性欧美大战久久久久久久| eeuss中文字幕| 深夜福利网站在线观看| 色婷婷综合久久久久中文字幕| 精灵使的剑舞无删减版在线观看| 精品亚洲国产视频| 精品96久久久久久中文字幕无| 欧美一区二区三区粗大| 免费操人视频| 午夜精品久久久久影视| 国产a级黄色片| 国产精品久久国产精品| av超碰在线| 国产视频一区二区视频| 国产精品亚洲一区二区在线观看| 黄上黄在线观看| 小黄鸭精品aⅴ导航网站入口| 日韩无码精品一区二区三区| 国产视频第一页在线观看| 日韩欧美黄色片| 精品伦精品一区二区三区视频密桃| 日本在线xxx| 粉嫩av一区二区三区粉嫩| 日韩免费高清在线| 国产一区二区免费在线观看| 欧美亚洲图片小说| 99国内精品久久久久久久软件| 国产亚洲一级| 欧美日韩一道本| 一道精品一区二区三区| 成人3d精品动漫精品一二三| 成人h在线播放| 免费不卡在线观看| 四虎国产精品永远| 另类天堂视频在线观看| 91在线视频精品| h色网站在线观看| 国产资源精品在线观看| 伊人狠狠色丁香综合尤物| 青青在线视频一区二区三区| 91肉色超薄丝袜脚交一区二区| 精品亚洲aⅴ在线观看| 羞羞视频免费| 日韩精品极品视频在线观看免费| 91成人在线免费观看| 台湾佬中文娱乐久久久| 免费看av大片| 欧美体内she精高潮| 国产精品a久久久久久| 欧美日韩在线视频免费播放| 亚洲国产一区二区久久久777| 日本一区二区免费在线观看视频| 国产原创欧美精品| 亚洲免费av网| 日本a级在线| 亚洲成av人片在www色猫咪| 免费裸体美女网站| 亚洲一二三四区| 成人资源在线播放| 国内av在线播放| 亚洲一级大片| 国产精品资源在线观看| 国产精品传媒视频| 久久精品国产v日韩v亚洲| 91精品国产高清久久久久久| 男人天堂久久| 国模精品一区二区三区色天香| 亚洲v日韩v欧美v综合| 欧美老少做受xxxx高潮| 亚洲色欲综合一区二区三区| 一区二区三区视频在线免费观看| 久久91亚洲精品中文字幕| 欧美激情网站| 国内一卡2卡三卡四卡在线| 精品婷婷色一区二区三区蜜桃| 国产偷国产偷亚洲清高网站| 少妇极品熟妇人妻无码| 美女视频一区二区三区在线| 日本福利专区在线观看| 久久久久国产一区二区三区四区| 免费av片在线观看一道本| 中文国产成人精品久久一| 日本一区二区免费在线观看视频| 国产精品久久久久无码av| 免费91在线视频| 欧美日韩精品免费在线观看视频| 精品人妻一区二区三区三区四区| 婷婷综合伊人| 日韩午夜激情av| 欧美日韩性视频| 性一交一乱一透一a级| 亚洲午夜久久久久中文字幕久| 中文字幕影片免费在线观看| 91亚洲精品一区二区乱码| 二区三区精品| 中文字幕视频观看| 欧美日韩激情视频一区二区三区| 能在线看的av| 噜噜噜久久亚洲精品国产品麻豆| 日本视频免费一区| 午夜成人免费电影| 999在线免费视频| 在线免费观看a视频| 久久精品国产视频| 日韩欧美伦理| 日本黄色三级大片| 99re6在线精品视频免费播放| 亚洲av成人片色在线观看高潮| 久久性天堂网| 午夜一级在线看亚洲| 欧美成aaa人片免费看| 亚洲一区二区自偷自拍| 久久本道综合色狠狠五月| 亚洲色图第三页| 日韩经典一区| 欧美日韩国产综合网| 国产精品美女久久久浪潮软件| 日本高清视频精品| 一本久道中文字幕精品亚洲嫩| 男人网站视频| 2019中文在线观看| 成人高潮片免费视频| 丁香婷婷在线观看| 小说区图片区图片区另类灬| 欧美精品国产白浆久久久久| 国产精品99久久久久久动医院| 黄色大片网站| 国产精品久久综合| 97成人在线| 久久久精品一品道一区| 亚洲日本伊人| 国产777精品精品热热热一区二区| 精品久久97| 欧美午夜不卡| 97在线视频人妻无码| 久久国产福利国产秒拍| 欧美日本一区二区三区| 日韩经典一区二区| 国产精品久久久久久久久鸭| 久久久久北条麻妃免费看| 久久影音资源网|