是否可以使用专用集成电路 (ASIC) 来暴力破解 MD5 哈希,从而将它们反转为原始形式?我知道可能会发生多次碰撞,但抛开这一点,有可能吗?这个想法让我感兴趣,因为我碰巧有 ASIC Miner Block Erupters,它们是用于生成 SHA-256 哈希的 ASIC,但为什么不是 MD5?提前致谢。
2 回答
暴力攻击是徒劳的,因为有 2^128 个 MD5 哈希。如果您每秒可以计算 10^18(即十亿乘以十亿)哈希,则仍然需要数十亿年才能找到一次碰撞(除非您非常幸运)。每秒太赫赫数还远远不够。2^128 / 1太赫兹是10^26秒的量级,大约是10^19年。
MD5 已损坏,但损坏并不意味着“暴力破解可行”,仅表示“可以以某种方式进行攻击(可能比暴力破解更复杂)”。
这是一个非常古老的问题,但在与客户合作并努力说服他们不能使用 MD5 来散列密码并需要升级到更安全的东西时,这篇文章出现在讨论中。
虽然公认的答案在技术上是正确的,但不必计算所有可能的 md5 哈希来破解密码,只需以一种有条不紊的方式旋转字符串和位置来获取实际密码。如果我们假设长度为 8 个字符,并且至少有大写、小写和数字的通用规则,那只有 218 万亿个组合。
在答案的狭隘范围内,是的,暴力破解 md5冲突是完全不切实际的,但是在 MD5 记录中抛出随机较小的数据集并查看你得到什么匹配是绝对可行的。简而言之,要计算一组长度为 5 个字符(包含字母、数字和特殊字符)的密码的每个可能的 MD5,在 1 Mh/s 下可能需要两个小时。
我使用 MacBook 和一些为上述客户端仓促编写的代码做了同样的事情。在解释问题的 45 分钟内,为了让他们指出这个答案是他们不需要打扰的原因,我已经获得了将近一千个存储在他们数据库中的极其不安全的密码.
长话短说,我只是不希望人们阅读这个答案并认为使用 MD5 散列的密码是不可能破解的。