使用對(duì)稱加密來(lái)加密SpringCloudConfig配置文件

補(bǔ)充

使用Spring Cloud Config加密功能需要下載JCE擴(kuò)展,用于生成無(wú)限長(zhǎng)度的密文。鏈接:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下載完成之后解壓,把得到到兩個(gè)Jar包復(fù)制到$JAVA_HOME\jre\lib\security目錄下。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到玉林網(wǎng)站設(shè)計(jì)與玉林網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋玉林地區(qū)。

簡(jiǎn)介

在真實(shí)項(xiàng)目環(huán)境下,我們不會(huì)在配置文件中明文存儲(chǔ)密碼等機(jī)密性文本,以防被竊。Spring Cloud Config提供了加密方法,以使明文文本加密成密文存儲(chǔ)在配置文件中。Spring Cloud Config提供了兩種加密解密方式,一種是對(duì)稱加密,一種是非對(duì)稱加密。這篇文章將先展示如何使用對(duì)稱加密。

對(duì)稱加密簡(jiǎn)介

使用對(duì)稱加密來(lái)加密Spring Cloud Config配置文件

對(duì)稱加密即通信雙方用同一密鑰(key)對(duì)文本進(jìn)行加密和解密。它有兩種加密方式:

  • Stream Cipher。對(duì)文本進(jìn)行逐字節(jié)或逐字的進(jìn)行加密。
  • Block Cipher。取一定長(zhǎng)度(block size)的字節(jié)加密成一個(gè)單元,長(zhǎng)度不夠或者不成block size倍數(shù)的用占位符填充。

對(duì)稱加密是較為簡(jiǎn)單的一種方式,只要雙方都擁有同一key就可以完成文本的加密和解密。不過(guò)對(duì)稱加密的缺點(diǎn)是無(wú)法認(rèn)證來(lái)源,即如果Alice和Bob正在通信,Alice使用key把加密后的文本傳遞給Bob,但是中途被Eve截取到了密文,然后Eve把密文轉(zhuǎn)發(fā)給Bob,讓Bob誤以為Eve就是Alice,然后就會(huì)造成數(shù)據(jù)泄露。

項(xiàng)目源碼

Gitee碼云

配置configserver

首先我們要先設(shè)置一個(gè)加密用到的Key,在我們的configserver項(xiàng)目中的bootstrap.yml配置文件中加入如下配置項(xiàng):

encrypt:
  key: Thisismysecretkey

測(cè)試

我們用這個(gè)key加密我們的web-client的一個(gè)測(cè)試項(xiàng)。Spring Cloud Config提供了加密和解密的終端路徑,/encrypt/decrypt。啟動(dòng)configserver,然后我們用/encrypt這個(gè)終端加密我們的測(cè)試文本:

curl localhost:8888/encrypt -d 12345678

返回的結(jié)果是(結(jié)果每次都會(huì)不一樣):

94c1027141add9844ec47f0be13caebb6b38ed1dcf99811b1a5cd2b874c64407

然后在我們的remote config倉(cāng)庫(kù)中,修改web-client.yml配置,新增一條配置:

test:
  password: '{cipher}94c1027141add9844ec47f0be13caebb6b38ed1dcf99811b1a5cd2b874c64407'

這里的引號(hào)是必須的,然后{cipher}指明了這條數(shù)據(jù)項(xiàng)為密文。然后我們可以驗(yàn)證一下解密:

curl localhost:8888/decrypt -d 94c1027141add9844ec47f0be13caebb6b38ed1dcf99811b1a5cd2b874c64407

正常情況下會(huì)得到我們的12345678字符。然后我們通過(guò)url訪問(wèn)web-client.yml配置文件,會(huì)得到如下結(jié)果:

{
    "name": "web-client",
    "profiles": [
        "default"
    ],
    "label": null,
    "version": "6b73c56449acee907fcf37e50892a3afddbf6335",
    "state": null,
    "propertySources": [
        {
            "name": "https://gitee.com/zxuqian/spring-cloud-config-remote/web-client.yml",
            "source": {
                "message": "此條消息來(lái)自于遠(yuǎn)程配置倉(cāng)庫(kù)",
                "management.endpoints.web.exposure.include": "*",
                "test.password": "12345678"
            }
        }
    ]
}

會(huì)看到解密后的test.password12345678。

歡迎訪問(wèn)我的博客:張旭乾的博客

當(dāng)前標(biāo)題:使用對(duì)稱加密來(lái)加密SpringCloudConfig配置文件
分享地址:http://muchs.cn/article14/gdipge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、商城網(wǎng)站、建站公司、服務(wù)器托管、網(wǎng)站策劃微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司