为了计算 SHA-256 哈希值,我需要填充我的消息。我使用以下描述:
(取自http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf 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”位?
我也查看了维基百科,但这并没有进一步阐明这个主题。谷歌搜索也没有太多成果,希望得到任何建议:)
Thanks
如果您的消息仅缺少一个完整块(短于 65 位),则您将需要输出比输入长一个块。在最坏的情况下,如果您的消息正好比完整块少 64 位,您将添加一个1
然后5110
s 在“数字”位之前,但这就是填充的工作原理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)