concrete5创建与存储值相当的密码哈希

时间:2015-06-14 15:46:54

标签: php hash passwords concrete5

我正在构建一个前端用户个人资料部分,用户可以在其中更改登录密码。

为了安全起见,我希望用户先输入他当前的密码才能输入新密码。

但我无法弄清楚如何根据数据库中的值检查密码的加密方式。通过我的方法,我总是得到一个使用相同输入值生成的不同字符串。

你有什么想法吗?

以下是我现在正在尝试的内容:

$oldPassword = $ui->getUserPassword();
echo"<pre>";    var_dump($oldPassword);   echo"</pre>";

$pw = User::getUserPasswordHasher();
//echo"<pre>";    var_dump($pw);   echo"</pre>";

$controlPassword = User::getUserPasswordHasher()->HashPassword('stern3');
echo"<pre>";    var_dump($controlPassword);   echo"</pre>";

我正在使用concrete5版本5.6.3.3。

1 个答案:

答案 0 :(得分:3)

我如何看到concrete5使用外部库Hautelook\Phpass\PasswordHash,此类有方法CheckPassword

https://github.com/hautelook/phpass/blob/f0217d804225822f9bdb0d392839029b0fcb0914/src/Hautelook/Phpass/PasswordHash.php#L305-L313

因此,您必须从DB获取用户并运行此方法来比较密码哈希值。

我希望它会有所帮助