前几天看了站中的一个帖子传送门 简单的说就是一个文本文件中的内容是这个文件的 md5 ,有没有可能找出这个 md5 值,然后我好奇心就起来了,于是我想动手验证一下。 我一开始的想法是,创建一个文本文件,然后计算他的 md5 ,但是感觉频繁的创建文件好像有点伤硬盘,于是我就试验了一下,直接计算一个字符串的 md5 和将这个字符串放在文本文件中在计算 md5 是不是一样。如果一样的话我就不用频繁创建文件了,经过试验这个是可行的。 然后我就写了一小段 python 的脚本来进行验证。 代码:
import hashlib
import time
if __name__=="__main__":
i=0
md5 = format("%f"%time.time())
while(True):
i = i+1
m=hashlib.md5()
m.update(md5.encode("utf8"))
temp = m.hexdigest()
print("%d\t%s md5-> %s"%(i,md5,temp))
if(temp==md5):
print("找到一个相同的了,回车继续")
print(md5)
input()
md5 = temp+format("%f"%time.time())
else:
md5 = temp
简单的说,就是先取当前时间作为初始字符串,然后计算 md5 接着将计算出来的 md5 再计算,一直循环到找到一样的,然后我就放到了一台闲置的腾讯云的主机上跑了十几个小时
跑了有快 4 千万条数据了。 然后我现在就在想,我这个方法有没有可能进入死循环啊?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.