【问题标题】:Base64 encoding, DONT_BREAK_LINES optionBase64 编码,DONT_BREAK_LINES 选项
【发布时间】:2013-10-22 12:58:05
【问题描述】:

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

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

谁能解释一下,为什么使用这个选项违反了 Base64 规范?

【问题讨论】:

    标签: base64


    【解决方案1】:

    Base64 一词源自MIME content transfer encoding

    定义它的 RFC 的最新版本是 here, RFC 5322

    上面写着:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多