什么是填充Base64编码的字符串,我如何在ruby中生成它们?

时间:2011-08-04 16:51:09

标签: ruby json base64

我与州合作的第三方API的文档:

  

“[O]你的API只接受填充的Base64编码字符串。”

什么是“填充Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。

  xa = Base64.encode64(a.to_json)

2 个答案:

答案 0 :(得分:5)

他们谈论的填充实际上是Base64本身的一部分。它最后是“=”和“==”。 Base64将3个字节的数据包编码为4个编码字符。因此,如果输入数据的长度为n且

  • n%3 = 1 =&gt;最后填充<= li>的“==”
  • n%3 = 2 =&gt;最后填充<= li>的“=”

无需更改代码。

答案 1 :(得分:2)

默认情况下看起来像base64库垫; Base64中的填充将是数据末尾的=个字符。

您可以通过在irb控制台中运行以下命令来查看:

irb(main):002:0> require 'base64'
=> true
irb(main):003:0> Base64.encode64('a')
=> "YQ==\n"

如果没有填充,您无法确定YQ是否包含所有内容或是否遗漏了某些内容。