我的问题似乎是书呆子,但我是那些PHP密码加密库和方法的新手。
我发现了很多关于使用bcrypt来实现最高级别的安全密码哈希的文章。
我发现在PHP5.5中,我们可以使用password_hash()函数创建bcrypt密码。但是大多数托管web服务器仍然不支持PHP5.5。真的很尴尬。
我还发现了另一个常用的函数crypt(),它支持六种哈希算法。幸运的是,该函数还可以通过提供适当的bcrypt格式字符串(如$2a$12$ )来生成哈希密码。同样,正式的php说PHP 5支持它,因此我决定在我的项目中使用这个。
我只想知道这个crypt()函数(使用$2a$12$)的安全级别等于PHP5.5的password_hash()函数。
我还发现了password_hash() 兼容库用于更低版本的PHP。与crypt()函数相比,这个库提供了其他优势吗?
请分享你的任何建议。我现在真是模棱两可。提前谢谢。
发布于 2014-05-24 21:07:43
$2a$散列不安全,有关详细信息,请参阅这页面。PHP5.3.7及以上版本使用$2y$。crypt可以生成安全散列,但您需要手动提供salt。如果生成弱盐,则哈希将不够安全。
因此,我建议使用password_compat。它是由Anthony Ferrara开发的,他将password_hash函数实现到PHP5.5中。它提供了一种简单而安全的方法来散列和比较密码。
https://stackoverflow.com/questions/23849586
复制相似问题