【问题标题】:SHA-256 PaddingSHA-256 填充
【发布时间】:2013-06-03 17:07:23
【问题描述】:

要计算 SHA-256 哈希,我需要填充我的消息。我使用以下描述: (取自http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf)

以通常的方式填充消息:假设消息的长度为 M, 以位为单位,是 l。将位“1”附加到消息的末尾,然后 k 个零位,其中 k 是 等式 l+1+k 448 mod 512。对此附加 64 位块,即 等于用二进制写的数l

但是,如果消息长度小于 512 位块的 64 位,应该怎么办......即,上面提到的结束 64 位块没有空间?还是 64 位长度和“1”位?

我也看过维基百科,但这并没有对这个主题产生更多的启发。谷歌搜索也不是很有成果,希望有任何建议:)

谢谢

【问题讨论】:

    标签: algorithm sha


    【解决方案1】:

    如果您的消息仅短于一个完整的块(短小于 65 位),则您的输出需要比输入长一个块。在最坏的情况下,如果您的消息正好比完整块少 64 位,您将在“数字”位之前添加 1,然后添加 511 0s,但这就是填充的工作方式。

    【讨论】:

    • 超级,谢谢罗林。您是否有任何参考?
    • 好吧,如果l = 448(比如说),规范中方程的解给出k = 511。由于规范说要添加您的1、您的 511 0s 和您的l 的 64 位二进制表示,因此您真的不能做任何事情除了在您的输出。
    • 很高兴能提供帮助。祝您其余的实施顺利!
    猜你喜欢
    • 1970-01-01
    • 2015-08-13
    • 2012-08-09
    • 1970-01-01
    • 2021-01-22
    • 2014-08-19
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多