SHA-256填充

时间:2013-06-07 11:43:17

标签: algorithm sha

要计算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

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

我也看过维基百科,但这并没有对这个问题有所了解。谷歌的搜索也没有太多成果,不胜感激任何建议:)

由于

1 个答案:

答案 0 :(得分:4)

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