【发布时间】:2011-06-22 18:41:27
【问题描述】:
我想使用 2 个不同的哈希值存储我的密码(为相同的密码保存 2 个哈希值,以(稍微)通过(几乎)消除冲突来提高安全性。 第一个问题:首先,由于碰撞可以忽略不计,因此是否有足够的好处? 第二个问题:最好的哈希是什么? sha-1 和 sha-256 是否比 sha-256 和一些不相关的算法(如河豚)有更多的碰撞?
【问题讨论】:
-
您需要散列还是可以使用加密?例如。 php.net/manual/en/intro.mcrypt.php
-
为此使用 bcrypt。永远不要发明自己的密码学!
-
您应该计算 sha256 的碰撞概率。整个宇宙中大约有 10^80 个原子。在整个 Univese 中找到特定原子的机会比让两个不同的字符串生成相同的散列的机会更小。此外,您应该阅读“计算机编程艺术”的介绍。关于安全性和随机性有一个启发性的部分。
-
我想使用无法解密的东西,如果 mcrypt 或 bcrypt 允许我这样做,我想没问题。