在PHP中实现password_hash的问题

时间:2015-07-24 06:48:17

标签: php passwords php-password-hash

我已经阅读了一些关于如何实现password_hash()的帖子,并尝试过这个。

当我在没有散列的情况下运行我的代码时,它工作正常但是当我添加散列函数时,我遇到了麻烦。

由于麻烦,我的意思是页面空白,没有任何内容存储在数据库中。

以下是与散列和输入DB

相关的代码
//Hasing of pw 
$hash = password_hash($Password, PASSWORD_DEFAULT);


//Creation of member
$query_insert_user = "INSERT INTO `members` ( `Username`, `Email`, `Password`, `Activation`) VALUES ( '$name', '$Email', '$hash', '$activation')";

$ Password这里是从页面收集的明文密码。

我看不出是什么导致了这个问题。

任何指针都会非常感激。

2 个答案:

答案 0 :(得分:2)

空白页面可能是由于缺少启用的错误报告造成的。

函数password_hashpassword_verify需要PHP 5.5.0才能运行。

使用下面的PHP版本会导致脚本失败。

答案 1 :(得分:0)

函数password_hashpassword_verify需要PHP 5.5.0才能运行。

如果您使用PHP version 5.5.0,请尝试

echo $hash; exit();

验证密码哈希的密码。您必须使用password_verify功能来验证密码。

password_verify验证给定的哈希值是否与给定的密码匹配。

请注意 password_hash()会返回算法,cost和salt作为返回哈希的一部分。因此,验证哈希所需的所有信息都包含在其中。这允许验证函数验证散列,而无需为salt或算法信息单独存储。

Ref