空字符串是否为零字节长度的有效base64编码数据?

Foz*_*ozi 16 base64

我的一所大学告诉我,空字符串不是有效的base64编码数据字符串.我不认为这是真的(他太懒了解析它),但谷歌搜索后甚至检查RFC我没有找到任何明确说明如何在base64中正确编码零字节长度blob的文档.

所以,问题是:你有一些官方文档的链接,明确说明如何在base64中编码零字节?

Bon*_*lin 14

根据RFC 4648第10节,测试向量,

BASE64("") = ""
Run Code Online (Sandbox Code Playgroud)

我认为反向也必须保持.


小智 6

我的想法是,有两个可能的base64值,空字符串可以产生; 要么是空字符串,要么是完全由填充字符组成的字符串('===').任何其他有效的base64字符串都包含信息.在第二种情况下,我们可以从RFC应用以下规则:

如果在字符串的末尾找到超过允许的填充字符数,例如,以"==="结尾的基本64字符串,则可以忽略多余的填充字符.

因为它们可以被忽略,所以可以从结果编码的字符串中删除它们而不会产生任何后果,再一次给我们留下一个空字符串作为空字符串的base64表示.