【问题标题】:"=" at the end of a message digest消息摘要末尾的“=”
【发布时间】:2012-05-11 06:08:14
【问题描述】:

为什么在 sha1 消息摘要的末尾有 "=" 符号?(经过 base64 编码)
"=" 符号甚至出现在 base64 编码签名 (rsa) 的末尾。为什么base 64包含它?

【问题讨论】:

    标签: java base64 sha1


    【解决方案1】:

    它只是 base64 的一部分 - 与摘要无关。添加“=”用于填充,因此整体结果始终是四个字符的倍数,但读者可以分辨出四个字符的“块”何时仅代表一个或两个字节(而不是正常的三个)。

    请参阅Wikipedia 了解更多信息。 (请注意,虽然它说只有在某些情况下才需要填充,但我认为我从未见过 包含填充的 base64 编码器,至少在默认情况下是这样。它远不止于此通常包括填充而不是不这样做。)

    【讨论】:

    • @Ashwin 详细了解 Base64 中的填充:en.wikipedia.org/wiki/Base64#Padding
    • @KonstantinV.Salikhov:我只是自己添加了那个链接 :)
    • 是的,正如 Jon Skeet 所说,它与摘要无关。
    • @Konstantin V. Salikhov:感谢您提供的链接,它解释了很多!
    【解决方案2】:

    “==”序列表示最后一组仅包含 1 个字节,“=”表示它包含 2 个字节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多