Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hash 从散列中获取128个最高有效位_Hash_Bitwise Operators_Bits - Fatal编程技术网

Hash 从散列中获取128个最高有效位

Hash 从散列中获取128个最高有效位,hash,bitwise-operators,bits,Hash,Bitwise Operators,Bits,我正在尝试实现,它依赖于一个散列函数,如下所述: H1 = SHA-1(1|1|z) mod 2^128 | SHA-1(1|2|z) mod 2^128 |...| SHA-1(1|9|z) mod 2^128 其中z是要散列的字符串。我难以理解的部分如下: 为了为H1创建1152个输出位,对SHA-1进行了九次调用,并使用每个输出的128个最低有效位。 一旦我从散列函数中获得输出(我使用的是SHA-256而不是SHA1),如何从该散列中获得128个“最低有效位”?我使用的库可以输出为8 x

我正在尝试实现,它依赖于一个散列函数,如下所述:

H1 = SHA-1(1|1|z) mod 2^128 | SHA-1(1|2|z) mod 2^128 |...| SHA-1(1|9|z) mod 2^128
其中
z
是要散列的字符串。我难以理解的部分如下:

为了为H1创建1152个输出位,对SHA-1进行了九次调用,并使用每个输出的128个最低有效位。

一旦我从散列函数中获得输出(我使用的是SHA-256而不是SHA1),如何从该散列中获得128个“最低有效位”?我使用的库可以输出为8 x 32位整数的数组:

[-1563099236, 1891088516, -531757887, -2069381238, 131899433, -1500579251, 74960544, -956781525]
或作为64个字符的十六进制字符串:

 "a2d4ff9c70b7b884e04e04c184a7bf8a07dca029a68efa4d0477cea0c6f8ac2b"
但我不知道如何从这些表示中恢复最低有效位。

给定十六进制字符串:

a2d4ff9c70b7b884e04e04c184a7bf8a 07dca029a68efa4d0477cea0c6f8ac2b
           most significant <-  | -> least significant
a2d4ff9c70b7b884e04e04c184a7bf8a 07dca029a68efa4d0477cea0c6f8ac2b
最显著最不显著
64个字符->256位,因此128位将是字符串的一半。最不重要的在字符串的末尾,最重要的在字符串的开头