前几天看了站中的一个帖子传送门 简单的说就是一个文本文件中的内容是这个文件的 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 千万条数据了。 然后我现在就在想,我这个方法有没有可能进入死循环啊?