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

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

我正在使用 concrete5 版本 5.6.3.3。

我如何看到 concrete5 使用外部库 Hautelook\Phpass\PasswordHash 而这个 class 有方法 CheckPassword:

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

所以你必须从 DB 中获取用户和 运行 这种方法来比较密码哈希值。

希望对你有所帮助