2016-01-06 41 views
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.htmlhttp://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中?

回答

4

.不是base 64编码的一部分,它只是离散编码项目之间的分隔符。

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 

解码为

{"alg":"RS256","typ":"JWT"} 

eyJleHAiOjE0NTIwNTE4NTEsImlhdCI6MTQ1MjA1MTc5MSwiaXNzIjoiaHR0cHM6Ly9vYXV0aC9hcGkvb3BlbmlkL3YxL3Rva2VuIiwiYXVkIjoiZWE2NjExNjctYTRiMC00ZDQ4LWIwZTEtNWRjOTMwMzk5MDgzIiwic3ViIjoiMWQ1ZmIwYjctN2NjMy00MjRkLTg1M2QtMWE5YWNjMzg2YTM5IiwiYXRfaGFzaCI6IkF6dnktNUJoR2NBN0E2UjJqMkEwYWciLCJjX2hhc2giOiJ5dzF0NnpNcVlTbE5ITTNCQmJyemVnIn0 

解码为

{"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"} 
+0

哇,谢谢! - 它的工作,我应该以前测试过 – Danish