我对 python 和密码学非常感兴趣,我想知道在 python 中破解哈希的最简单方法是什么。
我想构建一个可以破解此哈希值的小型 Python 脚本:21232f297a57a5a743894a0e4a801fc3 这只是“管理员”。
我需要经过什么过程才能猜出这个散列代表什么?
我已经阅读了有关 md5 的内容,此时我才刚刚开始学习密码学背后的方法,但它们还涉及深入的计算机科学,这是我目前还不了解的东西。
请您参考如下方法:
您可以像这样输出一个十六进制 md5:
>>> from hashlib import md5
>>> md5('admin').hexdigest()
'21232f297a57a5a743894a0e4a801fc3'
如果您有一个单词列表,您可以一个一个地尝试它们,如果它们的 md5 与您想要的匹配,则输出。 (这被称为字典攻击)
>>> words = 'test', 'alex', 'steve', 'admin'
>>> for word in words:
... if md5(word).hexdigest() == '21232f297a57a5a743894a0e4a801fc3':
... print word
... break
...
admin
如果你真的想破解 MD5,你会在 GPU 上获得更好的结果 - 试试像 OCLHashCat 这样的工具
