使用PHP,为什么我们使用crypt()进行密码散列而不是hash()?

时间:2012-08-18 04:52:27

标签: php hash naming crypt

  

可能重复:
  hash() vs. crypt() function comparison

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

我问这个的主要原因是因为我创建了一个包装crypt()的密码散列函数,我想知道如何命名我的函数。现在它被命名为getHash()。但是因为我正在包裹crypt(),所以我觉得这个名字很有趣。如果我使用getCrypt()听起来不是很好,因为它本身就是一个HASHING函数。我应该如何命名包含crypt()的散列函数?

2 个答案:

答案 0 :(得分:3)

hash使用的散列用于验证数据(如文件),通常作为校验和排序。它是 fast ,这就是为什么我们不将它用于安全数据。

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

答案 1 :(得分:0)

我认为我们最终得到的是一些隐藏设计速度较慢,而hash()相对较快。算法越慢,黑客就越可能强行破解您的密码。可悲的是,越慢越好......到了一点:)