【发布时间】:2010-08-04 20:36:01
【问题描述】:
如果我以MD5为例,用一些数据两次,会不会增加碰撞的概率?
那么 SHA 呢?
我问这个是因为我想在客户端中对密码进行哈希处理,然后在服务器中再次进行哈希处理。
【问题讨论】:
-
我知道mysql的password()函数其实只是一个双sha-1
如果我以MD5为例,用一些数据两次,会不会增加碰撞的概率?
那么 SHA 呢?
我问这个是因为我想在客户端中对密码进行哈希处理,然后在服务器中再次进行哈希处理。
【问题讨论】:
您是在谈论保留单散列值和双散列值并担心它们之间的冲突吗?如果是这样,那么答案是肯定的,它将使发生碰撞的概率加倍。然而,这意味着它会从一个很小的值(不记得确切的 2^-90 ish)上升到一个稍大的微小值(2^-89),你不必担心。
如果您只保留双重哈希值,那么:不,它们之间的冲突概率将保持不变。
尽管如此,您应该问自己通过两次散列值来达到什么目的,因为这几乎可以肯定毫无意义。在this old question 中有更多关于碰撞概率的信息。
【讨论】: