考虑到所有MD5算法和安全问题的破坏,MD5散列文件仍然被认为是一种足够好的唯一标识它的方法吗?在这里,安全性不是我最关心的问题,但唯一地标识每个文件才是。
有什么想法吗?
发布于 2010-10-27 18:33:54
是。从安全角度来看,MD5已经完全崩溃,但意外碰撞的可能性仍然很小。只需确保这些文件不是由您不信任的人创建的,并且这些人可能具有恶意。
发布于 2010-10-27 21:47:08
如果你没有对手,MD5就足够好了。然而,有人可以(故意)创建两个不同的文件,它们散列为相同的值(这称为冲突),这可能是问题,也可能不是问题,这取决于您的实际情况。
由于了解已知的MD5弱点是否适用于给定的上下文是一个微妙的问题,因此建议不要使用MD5。使用防冲突哈希函数(SHA-256或SHA-512)是安全的答案。此外,使用MD5是不好的公关(如果您使用MD5,请准备好为自己辩护;而没有人会质疑您使用的是SHA-256)。
发布于 2011-07-08 03:17:46
md5可能会产生冲突。从理论上讲,尽管可能性很小,但一百万个文件可以产生相同的散列。不要在存储值之前测试您的运气和检查md5冲突。
我个人喜欢创建随机字符串的md5,这减少了散列大文件的开销。当发现冲突时,我使用附加的循环计数器进行迭代和重新散列。
你可以在pigeonhole principle上阅读。
https://stackoverflow.com/questions/4032209
复制相似问题