要计算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”位?
我也看过维基百科,但这并没有对这个问题有所了解。谷歌的搜索也没有太多成果,不胜感激任何建议:)
由于
答案 0 :(得分:4)
如果您的消息仅短于一个完整的块(短于65位),则需要输出比输入长的块。在最坏的情况下,如果您的消息恰好是完整块的64位,您将在“数字”位之前添加1
然后511 0
s,但这就是填充的方式工作。