sha256中超过512位的填充算法

时间:2018-10-09 16:26:25

标签: message sha256 digest

如果有人回答我的问题,我将非常感谢, 我的问题是在sha256中,如果我们有512位消息长度,我该怎么做填充,因为在sha256 l + 1 + k = 448mod512中,它将溢出512位块,我的意思是说,对于哈希计算,我们需要除以512位块变成16 x 32块,过程是消息的位长度(l)+ k的'0'数+ l的二进制表示形式(消息的长度)。我的观点是k个数字0f'0'之后的512位,而l(消息的长度)的位表示将得到512位以上,如何将其划分为16 x 32位块。

1 个答案:

答案 0 :(得分:0)

您不需要将数据填充一定的长度即可获得sha256校验和值;该算法将处理几个字节以及兆字节的数据:

Linux> echo 'hey' |  sha256sum
4e955fea0268518cbaa500409dfbec88f0ecebad28d84ecbe250baed97dba889  -
Linux> echo '' |  sha256sum
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b  -
Linux> ls -oh L0_2018_08_28_Disk1_8mtbno4o_3_1.bkp 
-rw-r-----. 1 nfsnobody 348M Aug 28 23:48 L0_2018_08_28_Disk1_8mtbno4o_3_1.bkp
Linux> sha256sum L0_2018_08_28_Disk1_8mtbno4o_3_1.bkp
34438a1bc45f613b7be8797b1139aaa66a60d73844f2d7554184b17c621b4576  L0_2018_08_28_Disk1_8mtbno4o_3_1.bkp

如果您想了解实际的算法,open-source implementation会说

  

算法规范可以在这里找到:   http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf