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

首頁 > 開發 > Java > 正文

Spring Cloud Config RSA簡介及使用RSA加密配置文件的方法

2024-07-14 08:40:46
字體:
來源:轉載
供稿:網友

Spring Cloud 為開發人員提供了一系列的工具來快速構建分布式系統的通用模型 。例如:配置管理、服務發現、斷路由、智能路由、微代理、控制總線、一次性Token、全局鎖、決策競選、分布式session、集群狀態等等。分布式系統的協助需要一大堆的模型,使用Spring Cloud開發者能快速的建立支持實現這些模式的服務和應用程序。他們將適用于任何分布式環境,無論是開發者的個人電腦還是生產環境,還是云平臺。

特性

Spring Cloud 專注于提供良好開箱即用的典型方案和可擴展方式。

  • 分布式/版本化配置
  • 服務注冊/服務發現
  • 路由
  • 服務間調用
  • 負載均衡
  • 斷路器
  • 全局鎖
  • 領導選取和集群狀態監控
  • 分布式消息

簡介

RSA非對稱加密有著非常強大的安全性,HTTPS的SSL加密就是使用這種方法進行HTTPS請求加密傳輸的。因為RSA算法會涉及Private Key和Public Key分別用來加密和解密,所以稱為非對稱加密。Private Key和Public Key有互操作性,即用private key加密的可以用public key解密,用public key加密的可以用private key解密。傳統的單向認證則只用public key進行加密,有private key的一方才可進行解密。例如,一個web服務器會有一對private key和public key。瀏覽器客戶端保存著服務器的public key。當客戶端需要向服務器發送數據時,就用服務器的public key進行加密,然后服務器收到數據時,再用private key進行解密。客戶端驗證服務器是否為真實的服務器時,會根據服務器提供的public key和自己本地保存的public key作比較,一致的話才能驗證服務器的真實性。

在我們的config server中,一些對加密要求比較高的可以采用RSA算法進行數據的加密和解密。

項目源碼

Gitee碼云

生成測試Keystore

我們需要使用jdk自帶的keytool工具生成一個keystore,里邊保存了private key的信息,使用如下命令行:

keytool -genkeypair -alias config-server-key -keyalg RSA -dname "CN=Config Server,OU=Xuqian,O=My Own Company,L=Beijing,S=Beijing,C=CN" -keypass changeit

-keystore server.jks -storepass changeit

-genkeypair 參數即產生一對public key和private key。
-alias 指定key的別名,用于區分同一keystore中不同的key。
-keyalg 指定生成key的算法,這里使用默認的RSA
-dname 指定common name,即CN,用以驗證key的身份。其中各項皆為自定義參數,OU為單位名稱,O為組織名稱,L為城市,S為省份/州,C為國家
-keypass 為key的密碼
-keystore 為keystore的文件名
-storepass 訪問keystore的密碼

上述工具將產生的 privte key 保存在了名為server.jks的 key store 中。到目前為止,我們只產生了 private key,Spring Cloud Config Server 會根據我們提供的 key 的信息,每次會用程序生成一個 public key,參考如下源代碼

org.springframework.security.rsa.crypto.KeyStoreKeyFactory:

public KeyPair getKeyPair(String alias, char[] password) {  try {    synchronized (lock) {      if (store == null) {        synchronized (lock) {          // 根據配置提供的 keystore 文件地址和密碼獲取 keystore 的實例對象          store = KeyStore.getInstance("jks");          store.load(resource.getInputStream(), this.password);        }      }    }    // 根據配置提供的 alias 和 password 從 keystore 中取得 private key    RSAPrivateCrtKey key = (RSAPrivateCrtKey) store.getKey(alias, password);    // 定義 Public Key 生成規則    RSAPublicKeySpec spec = new RSAPublicKeySpec(key.getModulus(),        key.getPublicExponent());    // 生成 Public Key    PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(spec);    return new KeyPair(publicKey, key);  }  catch (Exception e) {    throw new IllegalStateException("Cannot load keys from store: " + resource, e);  }}

這里使用了 Java Security API 來對key進行操作。參見注釋。然后上邊的信息通過 configserver 中的 bootstrap.xml 配置文件提供:

encrypt: #key: Thisismysecretkey key-store:  location: file://${user.home}/development/keys/server.jks  password: changeit  alias: config-server-key  secret: changeit

因為我們不能同時使用對稱加密和非對稱加密,所以我們把 encrypt.key 配置注釋掉,然后指定非對稱加密的參數:

  • location: Keystore 的文件路徑
  • password: keystore 的密碼
  • alias: key 的別名
  • secret: key的密碼

測試

我們繼續使用 encrypt API加密一項測試數據:

curl http://localhost:8888/encrypt -d 23456789

返回加密后的字符:

AQAPWOUOh4WVexGgVv+bgtKc5E0d5Aba8VUKnzEXh27HyKSAbW+wyzDwZTbk5QYfXpoCAs413rdeNIdR2ez44nkjT5V+438/VQExySzjZPhP0xYXi9YIaJqA3+Ji+IWK8hrGtJ4dzxIkmItiimCOirLdZzZGDm/yklMUVh7lARSNuMxXGKlpdBPKYWdqHm57ob6Sb0ivm4H4mL1n4d3QUCuE7hh2F4Aw4oln7XueyMkRPTtPy8OpnBEEZhRfmaL/auVZquLU5jjMNJk9JiWOy+DSTscViY/MZ+dypv6F4AfDdVvog89sNmPzcUT+zmB8jXHdjLoKy+63RG326WffY9OPuImW6/kCWZHV6Vws55hHqRy713W6yDBlrQ/gYC3Wils=

然后測試解密

curl http://localhost:8888/decrypt -d AQAPWOUOh4+bgtKc5E0d5Aba8VUKnzEXh27HyKSAbW+wyzDwZTbk5QYfXpoCAs413rdeNIdR2ez44nkjT5V+438/VQExySzjZPhP0xYXi9YIaJqA3+Ji+IWK8hrGtJ4dzxIkmItiimCOirLdZzZGDm/yklMUVh7lARSNuMxXGKlpdBPKYWdqHm57ob6Sb0ivm4H4mL1n4d3QUCuE7hh2F4Aw4oln7XueyMkRPTtPy8OpnBEEZhRfmaL/auVZquLU5jjMNJk9JiWOy+DSTscViY/MZ+dypv6F4AfDdVvog89sNmPzcUT+zmB8jXHdjLoKy+63RG326WffY9OPuImW6/kCWZHV6Vws55hHqRy713W6yDBlrQ/gYC3Wils=

會返回

23456789

我們還可以修改web-client.yml來驗證:

#test: #password: '{cipher}94c1027141add9844ec47f0be13caebb6b38ed1dcf99811b1a5cd2b874c64407'user: password: '{cipher}AQAPWOUOh4WVexGgVv+bgtKc5E0d5Aba8VUKnzEXh27HyKSAbW+wyzDwZTbk5QYfXpoCAs413rdeNIdR2ez44nkjT5V+438/VQExySzjZPhP0xYXi9YIaJqA3+Ji+IWK8hrGtJ4dzxIkmItiimCOirLdZzZGDm/yklMUVh7lARSNuMxXGKlpdBPKYWdqHm57ob6Sb0ivm4H4mL1n4d3QUCuE7hh2F4Aw4oln7XueyMkRPTtPy8OpnBEEZhRfmaL/auVZquLU5jjMNJk9JiWOy+DSTscViY/MZ+dypv6F4AfDdVvog89sNmPzcUT+zmB8jXHdjLoKy+63RG326WffY9OPuImW6/kCWZHV6Vws55hHqRy713W6yDBlrQ/gYC3Wils='

注釋掉 test.password,新增一個 user.password 使用加密后的配置值。然后提交的gitee倉庫,通過 url 訪問此配置文件:

http://localhost:8888/web-client/default

得到如下結果:

{  "name": "web-client",  "profiles": [    "default"  ],  "label": null,  "version": "3044a5345fb86d09a043ca7404b9e57c8c13c512",  "state": null,  "propertySources": [    {      "name": "https://gitee.com/zxuqian/spring-cloud-config-remote/web-client.yml",      "source": {        "message": "此條消息來自于遠程配置倉庫",        "management.endpoints.web.exposure.include": "*",        "user.password": "23456789"      }    }  ]}

總結

以上所述是小編給大家介紹的Spring Cloud Config RSA簡介及使用RSA加密配置文件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩有码片在线观看| 欧美高清激情视频| 国产成人一区二区三区| 日本一区二区在线播放| 日韩在线视频网| 少妇精69xxtheporn| 色偷偷av一区二区三区乱| 亚洲成色www8888| 国产精品亚洲一区二区三区| 国产一区在线播放| 国产精品观看在线亚洲人成网| 久久国产精品电影| 国产精品久久久久高潮| 国产欧美精品va在线观看| 欧美精品九九久久| 欧美大尺度电影在线观看| 69影院欧美专区视频| 色偷偷噜噜噜亚洲男人的天堂| 国产欧美精品一区二区三区-老狼| 在线观看亚洲区| 91免费精品国偷自产在线| 97精品欧美一区二区三区| 国产精品国产自产拍高清av水多| 色综合色综合久久综合频道88| 亚洲毛片在线观看.| 亚洲人成电影在线观看天堂色| 亚洲午夜未删减在线观看| 91久久国产综合久久91精品网站| 国模私拍视频一区| 国产精品久久电影观看| 91精品国产高清自在线看超| 中文字幕在线观看亚洲| 中文字幕久久久| 91网在线免费观看| 国产日韩换脸av一区在线观看| 国产一区二区在线播放| 国产美女精品免费电影| 亚洲国产欧美一区| 亚洲精品资源美女情侣酒店| 亚洲成人激情小说| 黑人精品xxx一区一二区| 欧美久久精品一级黑人c片| 欧美激情久久久久久| 影音先锋欧美精品| 亚洲视屏在线播放| 欧洲亚洲免费在线| 成人性教育视频在线观看| 国产在线高清精品| 久久深夜福利免费观看| 欧美性猛交xxxx乱大交极品| 亚洲第一精品久久忘忧草社区| 国产日韩欧美91| 国产精品免费视频xxxx| 国产精品免费一区| 日韩av网址在线| 深夜福利日韩在线看| 91牛牛免费视频| 精品综合久久久久久97| 欧美性xxxx18| 国产亚洲人成网站在线观看| 国产精品户外野外| 国内精品中文字幕| 伊人久久久久久久久久| 欧美激情xxxx| 亚洲最大av网| 91av中文字幕| 国产精品igao视频| 欧美性在线视频| 欧美精品18videosex性欧美| 一区二区三区天堂av| 国内偷自视频区视频综合| 这里精品视频免费| 福利视频一区二区| 97精品在线观看| 亚洲在线一区二区| www国产亚洲精品久久网站| 亚洲人午夜精品| 欧美精品国产精品日韩精品| 九九九热精品免费视频观看网站| 亚洲在线视频福利| 国产在线视频不卡| 国产欧美日韩综合精品| 欧美体内谢she精2性欧美| 亚洲激情视频在线播放| 国产精品色婷婷视频| 国产成人涩涩涩视频在线观看| 日韩精品高清在线| 日韩精品在线观| 国产精品一区二区久久国产| 97国产精品久久| 久久久亚洲影院你懂的| 久久九九全国免费精品观看| 国产欧美日韩中文字幕| 日韩一级黄色av| 高清日韩电视剧大全免费播放在线观看| 国产99久久精品一区二区| 91精品国产自产在线| 亚洲国产成人爱av在线播放| 菠萝蜜影院一区二区免费| 精品久久久久久久久久国产| www.国产精品一二区| 国产精品十八以下禁看| 国产精品羞羞答答| 国产精品aaa| 欧美日韩国产丝袜美女| 日韩精品电影网| 亚洲一区二区三区成人在线视频精品| 国内精品久久久久影院 日本资源| 亚洲最新av在线| 国产成人高清激情视频在线观看| 2019中文在线观看| 欧美高清视频免费观看| 欧美日韩国产精品一区二区三区四区| 青青精品视频播放| 91av在线播放| 欧美午夜性色大片在线观看| 国产精品18久久久久久首页狼| 在线电影欧美日韩一区二区私密| 久久99亚洲热视| 2019中文字幕在线免费观看| 日韩专区在线播放| 性色av一区二区三区免费| 97视频免费在线观看| 日韩亚洲成人av在线| 法国裸体一区二区| 欧美国产日本高清在线| 欧美性在线视频| 亚洲精品99999| 国产成人综合精品在线| 国产精品综合网站| 成人黄色av播放免费| 国产精品99久久久久久www| 7777精品视频| 国产亚洲欧美一区| 久久国产精品网站| 亚洲va久久久噜噜噜| 久久久久免费精品国产| 国产美女久久精品香蕉69| 国产日韩欧美日韩大片| 热99精品里视频精品| 日韩美女写真福利在线观看| 日韩欧美中文在线| 精品国产一区二区三区久久狼黑人| 日韩成人激情影院| 亚洲日本成人女熟在线观看| 日韩av片永久免费网站| 成人黄色av播放免费| 久久久国产精彩视频美女艺术照福利| 91精品国产91久久久久久不卡| 日本国产高清不卡| 亚洲在线免费视频| 日韩亚洲一区二区| 精品久久香蕉国产线看观看亚洲| 欧美日韩爱爱视频| 久久精品中文字幕| 亚洲精品国偷自产在线99热| 欧美日韩免费看| 91成人国产在线观看| 国产69精品99久久久久久宅男| 日韩三级成人av网| 久久久久久久久综合| 国产精品久久久久久久久粉嫩av| 亚洲精品电影网在线观看| 中文字幕精品av|