如何将默认的WordPress密码散列系统更改为自定义密码?

时间:2013-03-11 作者:тнє Sufi

我可以通过重写插件中的wp\\u hash\\u password函数来更改默认的wordpress密码哈希系统吗?

如果是,那么数据库中存储的旧密码会发生什么情况?如何验证其登录?

2 个回复
最合适的回答,由SO网友:тнє Sufi 整理而成

我刚想出来。因此,如果其他人需要,可以将解决方案留在这里:

要更改默认哈希系统,需要覆盖wp\\u hash\\u password()函数:(可以在插件中完成)

if ( !function_exists(\'wp_hash_password\') ){
    function wp_hash_password($password) {
                //apply your own hashing structure here
            return $password;
    }
}
现在,您需要覆盖wp\\u check\\u password()以匹配哈希结构:(也可以在插件中完成)

if ( !function_exists(\'wp_check_password\') ){
    function wp_check_password($password, $hash, $user_id = \'\') {
            //check for your hash match
            return apply_filters(\'check_password\', $check, $password, $hash, $user_id);
            }
}
请检查wp_check_password

SO网友:Jan

这对我也有用。感谢您更新您的帖子。我的wordpress现在正在使用SHA1算法。但当我尝试登录时,我会收到一条消息;错误:由于意外输出,Cookie被阻止"E;Error我试图找出错误,但没有成功。可能是因为wp includes/pluggable中的681行。php:

$algo = function_exists( \'hash\' ) ? \'sha256\' : \'sha1\';
            $hash = hash_hmac( $algo, $username . \'|\' . $expiration . \'|\' . $token, $key );

            if ( ! hash_equals( $hash, $hmac ) ) {
                    /**
                     * Fires if a bad authentication cookie hash is encountered.
                     *
                     * @since 2.7.0
                     *
                     * @param string[] $cookie_elements An array of data for the authentication cookie.
                     */
                    do_action( \'auth_cookie_bad_hash\', $cookie_elements );
                    return false;
            }
你有没有遇到过类似的事情,或者有没有其他想法?

结束

相关推荐

Check the password of a user

我想检查用户是否有特定密码,因此我一直在尝试wp_check_password 但被检查的帐户已注销,在调用之前无法再次登录wp_check_password 在代码中。深入研究代码,我发现它使用新的哈希设置密码。而且如果我使用wp_check_password( \'hello\', md5(\'hello\'), 1 );, 它甚至不检查数据库中的内容并返回true。那不是一只虫子吗?有什么办法可以检查用户的密码吗?