首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python将数字字符串转换为MD5

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

Stack Overflow用户
提问于 2012-06-20 02:32:59
回答 3查看 4.3K关注 0票数 2

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

这有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-20 02:35:07

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

代码语言:javascript
复制
>>> 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,您可以使用以下命令:

代码语言:javascript
复制
>>> int(hashlib.md5('hello world').hexdigest(), 16)
125893641179230474042701625388361764291L

hash.hexdigest()函数返回一个十六进制字符串,您可以使用int(hex_str, 16)进行convert a hexadecimal string to a decimal

票数 5
EN

Stack Overflow用户

发布于 2012-06-20 02:39:29

使用int('db931', 16)将十六进制(base-16)字符串db931转换为十进制。

票数 1
EN

Stack Overflow用户

发布于 2012-06-20 02:43:23

这是一条线索--这段代码对the example image进行了编码,并生成了你可以在那里找到的数字。

代码语言:javascript
复制
>>> from hashlib import md5
>>> hash = md5("2005-05-26-10458.68").hexdigest()
>>> hash
'db9318c2259923d08b672cb305440f97'
>>> int(hash[:16],16)/16.**16
0.8577132677070023
>>> int(hash[16:],16)/16.**16
0.5445430695592821
>>> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11107169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档