【发布时间】:2021-11-08 05:45:13
【问题描述】:
如果我的输入小于 512 位的倍数,我需要将位和长度位附加到我的输入,使其成为 512 位的倍数。
https://infosecwriteups.com/breaking-down-sha-256-algorithm-2ce61d86f7a3
但是如果我的输入已经是 512 位的倍数呢?是否仍然需要进行位追加?例如,如果我的消息已经是 512 位长,我是否需要将其附加到 1024 位长?
如果我的输入小于 512 位的倍数,但长度足以不允许追加长度位怎么办?例如,我的输入是 504 位长。
【问题讨论】:
-
它似乎解释得很清楚:“我们添加的位数是这样计算的,因此在添加这些位之后,消息的长度应该正好比 512 的倍数小 64 位。”如果有 512 位,则必须将其填充到 960 位,然后添加 64 位作为长度,总共 1024。与 504 相同,因为 504 > 512-64。否则,您会遇到最后 64 位有时是长度位,有时不是,这似乎不对。
-
唯一不添加任何填充的情况是数据已经是 512*n-64,例如如果是 448 位。然后你不添加填充,但仍然添加长度位,并以 512 结束。
-
好的,谢谢,现在我明白了,让它成为答案,我接受它
-
等待最后澄清,所以如果我的输入是 512 位,我将它填充到 960,然后 1024 对吗?
-
是的,我就是这么说的。