我有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表中的字符串进行比较。
答案 0 :(得分:2)
如果此函数类似于PHP的本地password_hash()
函数,则使用散列生成沿着,并且salt是随机的。因此,比较password_hash()
的2个单独调用的结果是不匹配的。
您正在寻找的函数password_verify()
,它接受输入的密码和数据库上的哈希值。如果返回true,则密码匹配。