使用普通密码检查 WordPress 散列密码

Man*_*eek 6 php mysql wordpress hash phpass

我正在构建一个外部应用程序,其用户登录凭据将从 WordPress 站点数据库表“用户”中获取

WordPress 使用 PHPass 散列,我无法验证外部应用程序的用户名和密码,因为数据库表中的密码'users'已散列

我正在尝试使用wp_check_password函数检查带有散列密码的普通密码,但我失败了,此代码未写回任何内容

<?php

$password = '965521425';
$hash = '$P$9jWFhEPMfI.KPByiNO9IyUzSTG7EZK0';

require_once('/home/nhtsoft/public_html/project/wp-includes/class-phpass.php');

function wp_check_password($password, $hash) {
    global $wp_hasher;

    if ( empty($wp_hasher) ) {
        $wp_hasher = new PasswordHash(8, true);
    }
    $check = $wp_hasher->CheckPassword($password, $hash);
    return apply_filters('check_password', $check, $password, $hash);
}    
?>
Run Code Online (Sandbox Code Playgroud)

这段代码给了我一个空页面。

如何检查此密码,以便我可以使用这些 WordPress 凭据进行外部应用程序登录?

Bhu*_*hah 5

您传递了错误的哈希值,965521425 的哈希值为 $P$BmI5G.LOoEx1iH.naNqVhWnSh5sMp31,您只需将以下代码写入您的文件:

require_once($_SERVER['DOCUMENT_ROOT']."/wp-load.php");
 $password = '965521425';
 $hash = '$P$BmI5G.LOoEx1iH.naNqVhWnSh5sMp31';
 var_dump(wp_check_password($password, $hash));

exit;
Run Code Online (Sandbox Code Playgroud)