【发布时间】:2020-03-27 03:24:11
【问题描述】:
我有一个有效的 base64 字符串,我可以在在线工具中对其进行解码,但是当涉及到下面的行时;
string token = "eyJ1bmlxdWVfbmFtZSI6InllbmVyLnlpbG1hekB5ZHlhemlsaW0uY29tIiwiZ2l2ZW5fbmFtZSI6Ik1laG1ldCBZZW5lciIsImZhbWlseV9uYW1lIjoiWUlMTUFaIiwiZW1haWwiOiJ5ZW5lci55aWxtYXpAeWR5YXppbGltLmNvbSIsInJvbGUiOiJBZG1pbiIsIm5iZiI6MTU4NTI0OTI1NCwiZXhwIjoxNTg1ODU0MDU0LCJpYXQiOjE1ODUyNDkyNTR9==";
try
{
var asd = Convert.FromBase64String(token);
}
catch (Exception ex)
{
throw;
}
它抛出异常..
异常消息:
"输入不是有效的 Base-64 字符串,因为它包含非 base 64 字符、两个以上的填充字符或非法字符 在填充字符之间。”
为什么会这样?
【问题讨论】:
-
Base64 无效。您不需要填充 (
==);它使字符串无效。没有它,长度可以被 4 整除。