2016-03-08 67 views
0

我想要派生一个函数,它将返回SHA1哈希的最低有效4个字节。Python - 从SHA1哈希获取至少4个重要字节

例如,给出下面的SHA1哈希:

f552bfdca00b431eb0362ee5f638f0572c97475f (hex digest) 
\xf5R\xbf\xdc\xa0\x0bC\x1e\xb06.\xe5\xf68\xf0W,\x97G_ (digest) 

我需要派生,它可以提取哈希最后显著4个字节,并产生一个功能:

E456406 (hex) 
239428614 (dec) 

到目前为止,我有如Get the x Least Significant Bits from a String in PythonReading least significant bits in Python中所述尝试了解决方案。

但是,结果值是不一样的。

+0

不清楚您的预期值。那么最重要的4个字节(8个十六进制字符)是不是'0x2c97475f'?你如何得出你的期望值? – ChrisFreeman

+0

这些参数已被描述为我试图派生的黑盒函数的一部分。 – user2727492

+0

Q1)4个字节将是8个十六进制字符。十六进制值是否具有前导0(如在0x0e456406中)? Q2)确认你正在寻找一个函数func(x),其中func(sha1_hash)产生一个值,这样最后4个字节将成为你的目标值? – ChrisFreeman

回答

0

如果你想从该SHA1值至少显著4个字节(8个十六进制字符)f552bfdca00b431eb0362ee5f638f0572c97475f使用二进制掩码:

sha1_value = 0xf552bfdca00b431eb0362ee5f638f0572c97475f 
mask = 0xffffffff 
least_four = sha1_value & mask # 0x2c97475f