我知道,根据归档原理,如果物品的数量大于容器的数量,那么至少一个容器将有多个物品。它是哪个容器有关系吗?这如何应用于MD5、SHA1、SHA2哈希?
发布于 2010-02-28 08:47:48
如果要散列的项目比插槽多,那么就会发生散列冲突。但是如果你有一个糟糕的散列算法,那么即使当项目/插槽比率非常小的时候,你也会看到冲突。一个好的散列算法(包括您将在野外看到的大多数散列算法)将尝试将产生的散列尽可能均匀地分布在整个输出空间中,从而最大限度地减少冲突。
请注意,哈希冲突并不是世界末日。例如,当在哈希表中使用时,它只是意味着一个插槽中存储了多个项,并且表代码将不得不更多地遍历以查找或添加目标项,从而略微增加了查找时间。
你会看到人们将MD5称为一种“坏掉的”哈希算法,而实际上,它只是一种糟糕的密码哈希算法。它会比你自己做的要好。
https://stackoverflow.com/questions/2349550
复制相似问题