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

问题描述:

我正在构建一个前端用户配置文件部分,用户可以在其中更改其登录密码。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。

我怎么能看到concrete5使用外部库Hautelook\Phpass\PasswordHash这个类有方法CheckPassword

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

所以,你必须从数据库获取用户并运行此方法来比较密码哈希值。

我希望它会帮助

+0

Thx!像魅力一样工作,并帮助我很多:) – Sebsemillia