RFC2045

时间:2018-11-24 14:53:46

标签: base64 mime

根据rfc2045中指定的MIME base64编码,base64编码的数据必须分成最多76个字符的行。

解码时,必须忽略所有不属于base64字母的字符。

我们如何确定MIME base64编码数据的结尾?

1 个答案:

答案 0 :(得分:1)

当找到base64编码对象的开头时,应该总是可以找到结尾而无需对其进行解码。例子:

  • 您可能有一封电子邮件,其顶级编码为base64。在这种情况下,base64填充的结尾就是主体的结尾。正文的结尾不是由任何内部结构识别,而是由SMTP .末尾的单独DATA识别。
  • 如果您是从mbox文件中读取电子邮件,而不是通过SMTP接收电子邮件,则mbox格式负责告诉您消息结尾在哪里。
  • 如果您有一个包含base64一部分的多部分电子邮件正文,则可以先扫描该多部分边界以查找正文部分的末尾,然后将整个正文部分传递给base64解码器。
  • 类似地,如果您具有带有base64的RFC2047编码的标头,则可以先找到终止=?,然后将编码后的部分传递给base64解码器。

因为终止符在base64解码开始之前已经被识别,所以解码器永远看不到终止符,因此“不属于base64字母的字符”规则不相关。

查找base64数据结尾并进行解码的2个步骤可以组合成一个输入循环,以提高效率。但从概念上讲,它们是分开的。