3

要计算 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”位?

我也看过维基百科,但这并没有对这个主题产生任何影响。谷歌搜索也没有太多成果,希望有任何建议:)

谢谢

4

1 回答 1

4

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

于 2013-06-07T11:45:04.477 回答