用Base64 java字符串。在c#

时间:2016-01-06 06:13:44

标签: java c# base64

我有来自客户端的以下字符串 - 由基于java的SSO第三方组件的证书编码和签名

"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�

从解码中可以看出 - 我需要提取“sub”值 - 其余的可以保留为垃圾,因为它不需要解码

问题:问题是编码的字符串有“。”在里面。我该怎么替换“。”在C#?我试过用+和/替换它,这是唯一的另外两个没有字符值,但它破坏了编码,我无法得到“sub”

关于如何处理“。”的建议。在编码的base64?

1 个答案:

答案 0 :(得分: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"}