如果有人回答我的问题,我将非常感激,我的问题是在sha256中,如果我们有512位消息长度,我如何进行填充,因为在sha256 l+1+k=448mod512中,它将溢出512位块,我的意思是说,对于散列计算,我们需要将512位块划分为16 x 32块,过程是消息位长度(l) +k个'0‘+l(消息长度)的二进制表示。我的观点是在k个数字f '0‘和l(消息长度)的比特表示之后是512比特,我们将获得超过512比特,我们如何将其划分为16 x 32比特的块。
发布于 2018-10-10 01:25:06
您不需要将数据填充到一定长度才能获得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
https://stackoverflow.com/questions/52725468
复制相似问题