我想使用两个不同的哈希来存储我的密码(为同一个密码保存两个哈希,通过(几乎)消除冲突来(略微)提高安全性。第一个问题:既然碰撞是可以忽略不计的,那么这一点首先有足够的好处吗?第二个问题:最好的散列是什么?sha-1和sha-256是否比sha-256和一些不相关的算法(如blowfish)有更多的碰撞?
如果我理解你是正确的,你想用两种不同的哈希算法在数据库中存储两次哈希密码,是吗?只需使用两个产生不同长度的哈希算法,两个不同的哈希之间就不会发生冲突。
例如,sha1和md5提供不同长度的输出。
我建议使用sha1,不要担心碰撞。sha1碰撞的可能性是10^-45(正如这里解释的sha1碰撞的概率),所以除非你有数十亿的用户,否则这永远不会是一个问题。