我有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表中的字符串进行比较。
如果此函数与PHP本机的password_hash()
函数类似,则salt将与一起生成,并对salt进行随机化。因此,比较password_hash()
的两个单独调用的结果将不匹配。
您要查找的函数password_verify()
,它接受输入的密码和数据库上的哈希。如果返回true,则密码匹配。