Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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
Python比较两个十六进制值_Python_Hash - Fatal编程技术网

Python比较两个十六进制值

Python比较两个十六进制值,python,hash,Python,Hash,我使用pythons md5库在Map Reduce程序中散列我的名字和一系列nonce。我试图确定md5摘要的十六进制输出是否至少有5个前导0。md5输出一个长度为32位的字符串,表示散列。我不知道如何将这个字符串与十六进制值进行比较 我知道我需要与十六进制值进行比较,以及将哈希输出转换为十六进制值的方法 我认为要比较的十六进制值应该是0x00000100000000000000000000000(这是31 0,前面第5位是1)?但我不确定如何用python表示这一点 另外,如何将十六进制字符

我使用pythons md5库在Map Reduce程序中散列我的名字和一系列nonce。我试图确定md5摘要的十六进制输出是否至少有5个前导0。md5输出一个长度为32位的字符串,表示散列。我不知道如何将这个字符串与十六进制值进行比较

我知道我需要与十六进制值进行比较,以及将哈希输出转换为十六进制值的方法

我认为要比较的十六进制值应该是
0x00000100000000000000000000000
(这是31 0,前面第5位是1)?但我不确定如何用python表示这一点

另外,如何将十六进制字符串转换为实际的十六进制值

这里有一些我已经从我的程序打印出来了

10ad52a892674c28ad1de4343e79c232
582d84d589a5fd57df22a8449ac70329
dda932d448b07d048f7e52be4a8234db
04e982c9890a402e248a6e5ef07c9ac4
a86bf64393f1c494a8ac3520c0abf29a

为什么不使用字符串比较呢

if digest.hexdigest()[:5] == '0' * 5:
   # ...

其中,
digest
是MD5 digest对象。

要将十六进制字符串转换为整数值,可以使用
int
,如果指定了基:

>>> int("10ad52a892674c28ad1de4343e79c232", 16)
22167591802313671423113693555584516658