2
我從客戶端以下字符串 - 這是基於關閉基於Java的SSO第三方組件的證書編碼,並簽署Base64 java string with。解碼在C#
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTIwNTE4NTEsImlhdCI6MTQ1MjA1MTc5MSwiaXNzIjoiaHR0cHM6Ly9vYXV0aC9hcGkvb3BlbmlkL3YxL3Rva2VuIiwiYXVkIjoiZWE2NjExNjctYTRiMC00ZDQ4LWIwZTEtNWRjOTMwMzk5MDgzIiwic3ViIjoiMWQ1ZmIwYjctN2NjMy00MjRkLTg1M2QtMWE5YWNjMzg2YTM5IiwiYXRfaGFzaCI6IkF6dnktNUJoR2NBN0E2UjJqMkEwYWciLCJjX2hhc2giOiJ5dzF0NnpNcVlTbE5ITTNCQmJyemVnIn0.R6x1Hz23eaHr8H2uZSwqRa5MUYTibGl8ymSmh-t7Giep1JaQYVMoAKRonj7dWYnqrg7owEI6rgoYiHGKotiD-TKhNPGCaE3MCVCw0gtLZJ1lLq5b8ZMfInlBTcwgXVvK54ENJ04jYR04pIR6Lxb4vyk1MHEc_vHWBMtJKoQrPhFsOZh99Tq-L5aKEmUA-ygnK4ai_GCeI7Yy4aS6Al4Oa1O3E5DPQMTzd-ZZ_suM-3biHblPa-9oxrPfrwhMDyrYTpAr4yhvYHSVcXotul9AHdIkF7kDDIYo9ABQ6UJgOChGgfEPVZ3iOerPHoy8hSrkl5jgFW3w1to6k5DWBbHs9Q"
對於Java與C#的base64轉換,我知道, ' - '需要替換爲'+','_'需要替換爲'/',如果需要,還可以使用附加填充,在字符串的末尾使用'='使其成爲解碼的正確長度 -
http://ostermiller.org/calc/encode.html和 http://www.motobit.com/util/base64-decoder-encoder.asp?charset=utf-8&acharset=:
解碼可以在完成使用UTF-8編碼
解碼的字符串:
{"alg":"RS256","typ":"JWT"}{"exp":1452051851,"iat":1452051791,"iss":"https://oauth/api/openid/v1/token","aud":"ea661167-a4b0-4d48-b0e1-5dc930399083","sub":"1d5fb0b7-7cc3-424d-853d-1a9acc386a39","at_hash":"Azvy-5BhGcA7A6R2j2A0ag","c_hash":"yw1t6zMqYSlNHM3BBbrzeg"}�G�m�hz�k�K
�k�a8�_2�)����z�Ii2�
F��������#�ࡈ��-�4ʄ�� �70%B�H--�u���o�L|��70�uo+�4�8��t����[������r���I*�+>l9�}�:�墄�@2�r�j!�x��ˆ�� x9�N�NC=��Y��7n!۔����~�!0<�a:@������U����}wH�^�2��C� ����=Vw���<z2���^c�U��[h�NCXdz�
從解碼可以看出 - 我需要提取「分」值 - 其餘的可以留垃圾,因爲它不需要解碼
問題:問題是編碼後的字符串有一個「。」在裏面。我該如何取代「。」在C#中?我曾嘗試用+和/替換它,這是唯一的另外兩個沒有字符的值,但是它破壞了編碼,並且我無法獲得「sub」
關於如何處理「。」的建議。在編碼的base64中?
哇,謝謝! - 它的工作,我應該以前測試過 – Danish