1

可能重复:
hash() 与 crypt() 函数比较

最近我研究了如何在 PHP 中正确地进行密码散列。更好的选择之一是使用crypt(). 但是我们为什么不使用hash()呢?

我问这个的主要原因是因为我做了一个密码散列函数,crypt()我想知道给我的函数起什么名字。现在它被命名为getHash(). 但我觉得用这个名字很有趣,因为我在包装crypt()。如果我使用getCrypt()它听起来也不是很好,因为它是一个哈希函数。我应该将我的散列函数命名为什么crypt()

4

2 回答 2

3

所使用的散列hash是为了验证数据(如文件),通常作为校验和之类的东西。它很快,这就是我们不将它用于安全数据的原因。

Crypt(正确使用时)使用慢散列算法。慢速散列算法之所以重要,是因为它使某人难以暴力破解散列。如果慢散列算法比快速散列算法花费的时间甚至多 0.1 毫秒,那么尝试 10000 个密码将需要一秒钟,当然,暴力破解需要数百万次尝试。

于 2012-08-18T04:58:49.030 回答
0

我认为我们最终在这里得到的是,一些 crypts 被设计为较慢,而 hash() 相比之下相对较快。算法越慢,黑客就越能暴力破解您的密码。可悲的是,越慢越好……在某种程度上:)

于 2012-08-18T04:57:47.497 回答