国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Spring Cloud Config對特殊字符加密處理的方法詳解

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

前言

之前寫過一篇關于配置中心對配置內容加密解密的介紹:《Spring Cloud構建微服務架構:分布式配置中心(加密解密) 》。在這篇文章中,存在一個問題:當被加密內容包含一些諸如=、+這些特殊字符的時候,使用上篇文章中提到的類似這樣的命令curl localhost:7001/encrypt -d去加密和解密的時候,會發現特殊字符丟失的情況。

比如下面這樣的情況:

$ curl localhost:7001/encrypt -d eF34+5edo=a34c76c4ddab706fbcae0848639a8e0ed9d612b0035030542c98997e084a7427$ curl localhost:7001/decrypt -d a34c76c4ddab706fbcae0848639a8e0ed9d612b0035030542c98997e084a7427eF34 5edo

可以看到,經過加密解密之后,又一些特殊字符丟失了。由于之前在這里也小坑了一下,所以抽空寫出來分享一下,給遇到同樣問題的朋友,希望對您有幫助。

問題原因與處理方法

其實關于這個問題的原因在官方文檔中是有具體說明的,只能怪自己太過粗心了,具體如下:

If you are testing like this with curl, then use --data-urlencode (instead of -d) or set an explicit Content-Type: text/plain to make sure curl encodes the data correctly when there are special characters (‘+' is particularly tricky).

所以,在使用curl的時候,正確的姿勢應該是:

$ curl localhost:7001/encrypt -H 'Content-Type:text/plain' --data-urlencode "eF34+5edo="335e618a02a0ff3dc1377321885f484fb2c19a499423ee7776755b875997b033$ curl localhost:7001/decrypt -H 'Content-Type:text/plain' --data-urlencode "335e618a02a0ff3dc1377321885f484fb2c19a499423ee7776755b875997b033"eF34+5edo=

那么,如果我們自己寫工具來加密解密的時候怎么玩呢?下面舉個OkHttp的例子,以供參考:

private String encrypt(String value) {  String url = "http://localhost:7001/encrypt";  Request request = new Request.Builder()      .url(url)      .post(RequestBody.create(MediaType.parse("text/plain"), value.getBytes()))      .build();  Call call = okHttpClient.newCall(request);  Response response = call.execute();  ResponseBody responseBody = response.body();  return responseBody.string();}private String decrypt(String value) {  String url = "http://localhost:7001/decrypt";  Request request = new Request.Builder()      .url(url)      .post(RequestBody.create(MediaType.parse("text/plain"), value.getBytes()))      .build();  Call call = okHttpClient.newCall(request);  Response response = call.execute();  ResponseBody responseBody = response.body();  return responseBody.string();}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彩票| 凉城县| 九龙城区| 桃源县| 岳西县| 武功县| 礼泉县| 襄城县| 汾阳市| 防城港市| 遂平县| 青铜峡市| 修武县| 堆龙德庆县| 马鞍山市| 奉节县| 瑞丽市| 大化| 晋中市| 巧家县| 台州市| 肥乡县| 靖西县| 漳州市| 普安县| 滨州市| 宁武县| 烟台市| 吉林省| 贵阳市| 澄城县| 安龙县| 房山区| 宁夏| 梓潼县| 泗水县| 扎囊县| 遵化市| 克东县| 南通市| 赤水市|