0

我有 Moodle 2.7。用户登录名和密码哈希存储在 mdl_user 表中。我想创建可以检查的外部脚本 - 登录名和密码是否正确。

如我所见 - 这个moodle版本使用一些函数php,如password_hash()来生成密码哈希。

我的 php 版本是 5.4,所以我不能使用这个功能。所以我使用这个库https://github.com/ircmaxell/password_compat这个代码

$password_hash = password_hash( $password , PASSWORD_DEFAULT, array());

问题是每次我计算它时哈希都是不同的。所以我无法将此哈希与放置在 mdl_user 表中的字符串进行比较。

4

1 回答 1

2

如果这个函数类似于password_hash()PHP 原生的函数,salt 是和 hash一起生成的,salt 是随机的。因此,比较 2 个单独调用的password_hash()结果不会匹配。

您要查找的函数password_verify(),它采用输入的密码和数据库上的哈希值。如果返回 true,则密码匹配。

于 2016-01-07T17:41:47.603 回答