hash - 使用MD5不安全吗?

标签 hash

根据我的阅读,MD5(和其他算法,例如 SHA-1)散列算法已损坏。我只是很好奇它是怎么坏的。

有什么方法可以获取哈希值,并将其反转为原始文本吗?还是只是偶尔会发生碰撞?

在什么情况下使用 MD5(或任何其他损坏的算法)真的不好?文件更改检测?密码安全?查找重复文件?

最佳答案

在速度不是特别快的计算机上,您可以在大约一个小时(左右)内找到产生相同 MD5 散列的两个输入。至少据我所知,目前还没有已知的攻击可以让您找到会产生特定结果的输入。

不可能(而且永远不可能)找到用于生成特定散列的原始字符串,除非(可能)是偶然的。

对于查找重复文件,MD5 与以往一样好用。对于查找更改的文件,几乎相同。在任何一种情况下,只要没有人故意攻击 MD5 以产生冲突,从密码学的角度来看它被破解的事实几乎是无关紧要的。

对于任何与安全相关的内容,我都会避免使用 MD5。有很多更好的替代品很容易获得,没有理由比其他人更喜欢 MD5。

关于hash - 使用MD5不安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9712256/

相关文章:

ruby - 继承 Ruby Hash,对象没有 Hash 的方法?

algorithm - 关于散列 - 二次探测证明

java - 如果相同的盐用于唯一的输入,哈希算法是否能保证唯一的输出?

perl - 如何从嵌套级别未知的嵌套哈希中提取值?

java - HTTP URL token 标准

hash - 如何计算 64 位哈希的冲突风险?

ruby - 最简洁的方法,采用单级散列参数并返回具有 nil 值的副本

hash - Mathematica使用的默认哈希码是什么?

algorithm - 需要一个低冲突哈希函数。输入都是相同 72 位的排列

arrays - Perl 中的引用 : Array of Hashes