Spring Cloud配置中心內容加密

從配置獲取的配置默認是明文的,有些像數據源這樣的配置須要加密的話,須要對配置中心進行加密處理。html

下面使用對稱性加密來加密配置,須要配置一個密鑰,固然也可使用RSA非對稱性加密,但對稱加密比較方便也夠用了,這裏就以對稱加密來配置便可。java

一、安裝JCE

JDK下的JCR默認是有長度限制的,須要替換沒有長度限制的JCE版本。web

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html面試

把下載包裏面的兩個jar文件複製替換到JAVA_HOME/jre/lib/security目錄下。spring

二、添加加密KEY

配置中心配置文件中加入加密密鑰。編程

encrypt: 
  key: 0e010e17-2529-4581-b907-c8edcfd6be09

三、查看加密功能狀態

http://192.168.1.237:7100/encrypt/status

功能正常會顯示OKjson

{"status":"OK"}

四、加密解密

develop字符串加密bash

curl http://192.168.1.237:7100/encrypt -d  develop -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6

develop字符串解密多線程

curl http://192.168.1.237:7100/decrypt -d  0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836 -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6

-u username:password 爲basic認證架構

五、配置文件

spring: 
  datasource: 
    username: '{cipher}0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836'

須要加密的內容以{cipher}開頭,並注意要使節單引號包起來,否則報錯。

六、讀取配置

這樣客戶端讀取出來的配置是自動解密了的,若是要關閉自動解密功能經過客戶端本身來解密,同時也要保留加解密的端點能夠經過關閉如下配置便可。

spring.cloud.config.server.encrypt.enabled=false

推薦閱讀

乾貨:2TB架構師四階段視頻教程

面經:史上最全Java多線程面試題及答案

面經:史上最全阿里高級Java面試題

面經:史上最全Spring面試題

教程:最全Spring Boot全套視頻教程

書籍:進階Java架構師必看的15本書

工具:推薦一款在線創做流程圖、思惟導圖軟件

分享Java乾貨,高併發編程,熱門技術教程,微服務及分佈式技術,架構設計,區塊鏈技術,人工智能,大數據,Java面試題,以及前沿熱門資訊等。