从这个页面看来,每秒可以进行50亿个哈希操作。这是否意味着导致碰撞并不困难?如果我想创建一个特定MD5或SHA1的文件需要多长时间?
根据我的计算(使用2^160),仍然需要很长时间,但听说对于破解160位SHA1哈希值并非需要2^160次尝试。
根据我的计算(使用2^160),仍然需要很长时间,但听说对于破解160位SHA1哈希值并非需要2^160次尝试。
结论:你需要3万亿台计算机,从宇宙大爆炸开始,到今天才能得到你的MD5哈希值。
在密码学方面,暴力破解永远不是答案。一旦使用它,就意味着加密算法不够强大,即没有足够的位数。这就发生在DES上,它只有56位密钥-这显然是不够的。
此外,请注意,256位不是128位的“两倍”!实际上,256位是128位的2^128倍。
2^256 / 2^128 = 2^128
使用暴力破解,你永远无法得到任何结果!无论你有多少台电脑。唯一的选择是通过数学攻击算法。
全世界的加密分析师和数学家都在研究这个问题。
他们通过破解算法,在合理的时间内创建了一个MD5碰撞。不要问我他们是如何做到的,但以下是一个例子:
d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89 55ad340609f4b302 83e488832571415a 085125e8f7cdc99f d91dbdf280373c5b d8823e3156348f5b ae6dacd436c919c6 dd53e2b487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080a80d1e c69821bcb6a88393 96f9652b6ff72a70
与以下文本具有相同的MD5:
d131dd02c5e6eec4 693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89 55ad340609f4b302 83e4888325f1415a085125e8f7cdc99f d91dbd7280373c5b d8823e3156348f5b ae6dacd436c919c6 dd53e23487da03fd02396306d248cda0 e99f33420f577ee8 ce54b67080280d1ec69821bcb6a88393 96f965ab6ff72a70
所以你无法反向哈希,但是有像 md5cracker 这样的彩虹表。它们拥有一个大型的字符串(通常是密码)和它们的哈希的数据库。因此,如果您使用简单的密码,可以在那里查找哈希值。
尝试查找此哈希值:
如果您在数据库中存储密码的MD5值,最好将其添加一个盐。例如,不要使用md5(password)
,而是使用md5("salt1234" + password)
。或者更好的方法是,为每个用户使用不同的盐,这样没有人可以看到哪些用户共享相同的密码。