在 PHP 中实施 password_hash 的问题

Issues implementing password_hash in PHP

我已经阅读了一些关于如何实现 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是页面收集到的明文密码

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

任何指点将不胜感激。

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

如果您正在使用 PHP version 5.5.0 然后尝试

echo $hash; exit();

验证密码哈希的密码。您必须使用 password_verify 函数来验证密码。

password_verify 验证给定的散列是否与给定的密码匹配。

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

Ref

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

函数 password_hash and password_verify 需要 PHP 版本 5.5.0 才能运行。

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