无效的Base64字符串无法解码

问题描述 投票:0回答:2

我有一个有效的base64字符串,可以在联机工具中对其进行解码,但是涉及到下面的行;

string token = "eyJ1bmlxdWVfbmFtZSI6InllbmVyLnlpbG1hekB5ZHlhemlsaW0uY29tIiwiZ2l2ZW5fbmFtZSI6Ik1laG1ldCBZZW5lciIsImZhbWlseV9uYW1lIjoiWUlMTUFaIiwiZW1haWwiOiJ5ZW5lci55aWxtYXpAeWR5YXppbGltLmNvbSIsInJvbGUiOiJBZG1pbiIsIm5iZiI6MTU4NTI0OTI1NCwiZXhwIjoxNTg1ODU0MDU0LCJpYXQiOjE1ODUyNDkyNTR9==";
try
{
    var asd = Convert.FromBase64String(token);
}
catch (Exception ex)
{
    throw;
}

引发异常。。

异常消息:

“输入不是有效的Base-64字符串,因为它包含非base 64字符串字符,两个以上的填充字符或非法字符在填充字符之间。“

为什么会这样?

我有一个有效的base64字符串,可以在在线工具中对其进行解码,但是在下面的代码行中;字符串标记=“ ...

c# asp.net base64
2个回答
0
投票

您可能已经检查了validator


0
投票

因为Base64字符串将每个字节(8位)映射为6位,所以每个3字节(24位)变为4个字节。Base64字符串的长度必须可整除为4,如果没有在末尾添加所需的=个字符(实际上不是其内容的一部分)以使长度可整除为4。

© www.soinside.com 2019 - 2024. All rights reserved.