最近我研究了如何在PHP中正确进行密码散列。其中一个更好的选择是使用crypt()
。但为什么我们不使用hash()
?
我问这个的主要原因是因为我创建了一个包装crypt()
的密码散列函数,我想知道如何命名我的函数。现在它被命名为getHash()
。但是因为我正在包裹crypt()
,所以我觉得这个名字很有趣。如果我使用getCrypt()
听起来不是很好,因为它本身就是一个HASHING函数。我应该如何命名包含crypt()
的散列函数?
答案 0 :(得分:3)
hash
使用的散列用于验证数据(如文件),通常作为校验和排序。它是 fast ,这就是为什么我们不将它用于安全数据。
Crypt(正确使用时)使用慢速哈希算法。慢哈希算法很重要的原因是因为它使得某人很难强制哈希。如果慢速哈希算法比快速哈希算法花费甚至0.1毫秒,那么尝试10000个密码将花费一秒钟,当然,暴力破解需要数百万次尝试。
答案 1 :(得分:0)
我认为我们最终得到的是一些隐藏设计速度较慢,而hash()相对较快。算法越慢,黑客就越可能强行破解您的密码。可悲的是,越慢越好......到了一点:)