混凝土5 创建与存储值相当的密码哈希


concrete5 create password hash that is comparable to stored value

我正在构建一个前端用户配置文件部分,用户可以在其中更改其登录密码。

为了安全起见,

我希望用户先输入当前密码,然后才能输入新密码。

但是我不知道如何加密密码,就像可以根据数据库中的值进行检查一样。使用我的方法,我总是得到一个具有相同输入值的不同字符串。

你有什么想法吗?

这是我现在正在尝试的:

$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>";

我正在使用混凝土5版本5.6.3.3。

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

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

因此,您必须从数据库中获取用户并运行此方法以比较密码哈希。

我希望它会有所帮助