使用python将数字字符串转换为MD5

dan*_*tdj 2 python md5 geohashing

受到XKCD geohashing漫画(http://imgs.xkcd.com/comics/geohashing.png)的启发,我想我已经开始用Python编写生成器了.不过我已经遇到了一个主要部分:转换为MD5然后转换为十进制.

它可能吗?

And*_*ark 5

编辑:看完漫画后,这是一个更完整的XKCD geohashing解决方案:

>>> md5 = hashlib.md5('2005-05-26-10458.68').hexdigest()     # get MD5 as hex string
>>> float.fromhex('0.' + md5[:16])                           # first half as float
0.85771326770700229
>>> float.fromhex('0.' + md5[16:])                           # second half as float
0.54454306955928211
Run Code Online (Sandbox Code Playgroud)

以下是"转换为MD5然后转换为十进制"的更一般的答案:

假设您想要字符串的十进制MD5 'hello world',您可以使用以下内容:

>>> int(hashlib.md5('hello world').hexdigest(), 16)
125893641179230474042701625388361764291L
Run Code Online (Sandbox Code Playgroud)

hash.hexdigest()函数返回一个十六进制字符串,并且int(hex_str, 16)您可以将十六进制字符串转换为十进制.