PHP Password_Hash函数

时间:2014-06-29 10:35:23

标签: php authentication passwords

我一直在阅读PHP Password_Hash函数的用法,它声明它会自动生成一个盐,并且不建议手动生成一个盐。

考虑到这一点,这是否意味着我可以执行以下代码:

    $password = password_hash('mypassword', PASSWORD_DEFAULT);

创建一个散列和加密的密码,除了存储到MySQL表格列之外,除了存储到MySQL表格列之外,什么都不需要做什么呢?

2 个答案:

答案 0 :(得分:3)

password_hash生成salt和hash。 然后将它们合并为一个字符串,因此您不必像通常那样单独存储它们。

这也是password_verify只接受两个参数的原因:密码以及salt和hash的组合。

不建议生成自己的盐,因为你可能做错了。例如,您可以通过生成可预测的字符串或使其太短来创建错误的字符串。另外,因为password_hash函数已经这样做了,为什么还要麻烦?如果用户更改了密码,那么通常会重新生成散列和salt。

答案 1 :(得分:0)

是。然后,您可以检索它并使用password_verify()来检查用户提供的密码是否与存储的哈希相匹配。