我有一个有效的base64字符串,可以在联机工具中对其进行解码,但是涉及到下面的行;
string token = "eyJ1bmlxdWVfbmFtZSI6InllbmVyLnlpbG1hekB5ZHlhemlsaW0uY29tIiwiZ2l2ZW5fbmFtZSI6Ik1laG1ldCBZZW5lciIsImZhbWlseV9uYW1lIjoiWUlMTUFaIiwiZW1haWwiOiJ5ZW5lci55aWxtYXpAeWR5YXppbGltLmNvbSIsInJvbGUiOiJBZG1pbiIsIm5iZiI6MTU4NTI0OTI1NCwiZXhwIjoxNTg1ODU0MDU0LCJpYXQiOjE1ODUyNDkyNTR9==";
try
{
var asd = Convert.FromBase64String(token);
}
catch (Exception ex)
{
throw;
}
引发异常。。
异常消息:
“输入不是有效的Base-64字符串,因为它包含非base 64字符串字符,两个以上的填充字符或非法字符在填充字符之间。“
为什么会这样?
我有一个有效的base64字符串,可以在在线工具中对其进行解码,但是在下面的代码行中;字符串标记=“ ...
您可能已经检查了validator。
因为Base64字符串将每个字节(8位)映射为6位,所以每个3字节(24位)变为4个字节。Base64字符串的长度必须可整除为4,如果没有在末尾添加所需的=
个字符(实际上不是其内容的一部分)以使长度可整除为4。