0

我正在使用 Base64.encodeBytes 通过签名数据进行编码,但它会在生成的字符串中添加换行符(每 76 个字符)。我发现有一个选项可以通过DONT_BREAK_LINES以避免换行符。

但是这个领域的描述说 /** Don't break lines when encoding (violates strict Base64 specification) */

有人可以解释一下,为什么使用此选项违反 Base64 规范?

4

1 回答 1

1

Base64 一词源自MIME 内容传输编码

定义这一点的 RFC 的最新版本在这里,RFC 5322

它说:

2.1.1。行长限制

   该规范对数量有两个限制
   一行中的字符。每行字符必须不超过
   998 个字符,并且应该不超过 78 个字符,不包括
   CRLF。

而且由于 CR 和 LF 都是一个字符,因此剩下 76 个字符用于行。

TBH 它只是违反了文本的建议,实际上没有人关心。如果您的行长超过 996 个字符,那么您将违反.. 并且可能没有人会在意。

于 2013-10-22T04:58:05.627 回答