如果输入已经是 N x 512 位,SHA-256 是否仍然需要追加位?

SHA-256 does bit append still required if input is already N x 512 bit?

如果我的输入小于 512 位的倍数,我需要将位和长度位附加到我的输入,以便它是 512 位的倍数。
https://infosecwriteups.com/breaking-down-sha-256-algorithm-2ce61d86f7a3

但是如果我的输入已经是 512 位的倍数怎么办?是否仍然需要做位追加?例如,如果我的消息已经是 512 位长,我是否需要将其追加到 1024 位长?

如果我的输入小于 512 位的倍数,但足够长以至于不允许附加长度位怎么办?例如,我的输入是 504 位长。

好像解释的比较清楚了:

The number of bits we add is calculated as such so that after addition of these bits the length of the message should be exactly 64 bits less than a multiple of 512.

如果有512位,你必须把它填充到960位,然后加上64位的长度,总共1024。和504一样,因为504 > 512-64。否则你会遇到最后 64 位有时是长度位有时不是的情况,这似乎不对。

您不会添加任何填充的唯一情况是数据已经是 512*n-64,例如如果它是 448 位。然后你不添加填充但仍然添加长度位,最后得到 512.