据我理解,Base64编码字符串(即encode的输出)必须始终是4的倍数。
c# Convert.FromBase64String函数要求输入必须是4的倍数。
然而,如果我给它一个25个字符的字符串,它不会抱怨。
[convert]::FromBase64String("ei5gsIELIki+GpnPGyPVBA==")
[convert]::FromBase64String("1ei5gsIELIki+GpnPGyPVBA==")
两种方法都可以。(第一种是24,第二种是25)
[convert]::FromBase64String("11ei5gsIELIki+GpnPGyPVBA==")
出现“无效长度异常”错误
我认为这是c#库中的一个bug,但我想确认一下 - 我正在编写代码来嗅探字符串以查看它们是否是有效的base64字符串,并且我想确保我理解什么是有效的base64字符串(一个可能的实现是将字符串传递给system.convert并查看它是否抛出异常 - 为什么要重新发明完美的代码)