如何在PHP中使用带有password_hash()的BCRYPT

时间:2017-03-24 06:30:10

标签: php

现在PHP中的password_hash()> = 5.6,我们是否还需要使用BCRYPT来使对象/密码更安全?

如果是,那么任何人都可以描述如何使用password_hash()和BCRYPT在注册页面中存储密码,然后如何在登录页面上为登录用户检索信息?

很抱歉,如果有人因初学者的有限知识而被冒犯。我很困惑,并没有得到答案。

更新:

我现在有了这个想法,因为PHP在运行时创建了自己的随机盐,所以不需要使用带有password_hash()的BCRYPT / salt / pepper。 最简单的步骤是使用password_hash($ passwordVariable)简单地哈希密码,并且只需使用password_verify($ passwordEntered,$ hashedPassword_fromDB)进行验证。 谢谢大家。

2 个答案:

答案 0 :(得分:2)

现在没有必要使用带有password_hash()的BCRYPT / salt / pepper,因为PHP在运行时创建了自己的随机盐。

最简单的步骤是使用password_hash($ passwordVariable)简单地哈希密码,并且只需使用password_verify($ passwordEntered,$ hashedPassword_fromDB)进行验证

答案 1 :(得分:1)

password_hash()背后的整个想法是始终使用最新的散列算法。目前,默认算法。使用的确是BCRYPT。它甚至允许您传递更多选项,以使您的密码更安全(例如您自己的盐或工作因素)。 而且更好的是,php还提供 password_needs_rehash()功能,允许您稍后检查是否使用当前算法创建了给定的哈希,如果没有,您可以重新密码。 查看pasword_hash()的官方php文档页面:http://php.net/manual/en/function.password-hash.php