受到 XKCD geohashing 漫画 (http://imgs.xkcd.com/comics/geohashing.png) 的启发,我想我可以尝试用 Python 编写一个生成器。不过,我已经遇到了它的主要部分的障碍:转换为 MD5,然后转换为十进制。
有可能吗?
最佳答案
edit: 看了漫画后这里有一个更完整的解决方案 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
这里是“转换为 MD5 然后转换为十进制”的更一般的答案:
假设您想要字符串 'hello world'
的十进制 MD5,您可以使用以下内容:
>>> int(hashlib.md5('hello world').hexdigest(), 16)
125893641179230474042701625388361764291L
hash.hexdigest()
函数返回一个十六进制字符串,而 int(hex_str, 16)
就是您可以 convert a hexadecimal string to a decimal 的方式.
关于python - 使用python将数字字符串转换为MD5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11107169/