对于PHP,为什么我们使用crypt()进行密码哈希而不是hash()?

对于PHP,为什么我们使用crypt()进行密码哈希而不是hash()?,php,hash,naming,crypt,Php,Hash,Naming,Crypt,可能重复: 最近我研究了如何在PHP中正确地进行密码哈希。更好的选择之一是使用crypt()。但是为什么我们不使用hash() 我问这个问题的主要原因是因为我制作了一个密码散列函数,它包装了crypt(),我想知道该如何命名我的函数。现在它的名称是getHash()。但是我觉得使用这个名字很有趣,因为我正在包装crypt()。如果我使用getCrypt(),听起来也不太好,因为它是一个散列函数。我应该给包装crypt()的散列函数取什么名字?我想我们最终得到的是,一些crypt被设计得比较慢,

可能重复:

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


我问这个问题的主要原因是因为我制作了一个密码散列函数,它包装了
crypt()
,我想知道该如何命名我的函数。现在它的名称是
getHash()
。但是我觉得使用这个名字很有趣,因为我正在包装
crypt()
。如果我使用
getCrypt()
,听起来也不太好,因为它是一个散列函数。我应该给包装
crypt()
的散列函数取什么名字?

我想我们最终得到的是,一些crypt被设计得比较慢,而hash()相对来说比较快。算法速度越慢,黑客就越难强行破解你的密码。可悲的是,越慢越好。。。从某种意义上说:)

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


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

散列也更可取,因为只要提供密钥,加密很容易可逆。您唯一需要在散列上进行加密的时候是以后必须检索密码(为什么需要?)@Gary加密从何而来?没有人讨论过加密。