You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask集成WordPress 6.8的用户认证:新密码哈希格式验证问题求助

Flask集成WordPress 6.8的用户认证:新密码哈希格式验证问题求助

大家好,我最近在做Flask应用集成WordPress 6.8的用户认证功能时遇到了麻烦,主要是WordPress 6.8更新了密码哈希格式,原来的验证逻辑完全失效了,想请各位大佬指点迷津!

问题背景

之前WordPress还没升级到6.8的时候,我用passlib的phpass模块来验证WordPress的密码哈希(当时哈希格式是$P$开头的),代码运行完全正常:

# 之前可用的代码
from passlib.hash import phpass

class Authenticator:
    def __init__(self, flask_app):
        self.flask_app = flask_app

    def authenticate(self, email, password):
        user_password = self.get_user_password(email) 
        # 当时数据库里的密码哈希格式:$P$.....
        # 待验证的明文密码:"something"
        
        if not phpass.verify(password, user_password):
            return False, Response.wrong_credentials(self.flask_app.site_url)
        return True, None

升级WordPress 6.8后的问题

升级到WordPress 6.8之后,我发现数据库里的密码哈希格式变成了$WP$2y$10$...开头的,原来的phpass验证逻辑完全识别不了。

我尝试过的方案(但失败了)

我想着WordPress现在用的是bcrypt相关的哈希,就换成了flask_bcrypt来验证,结果直接抛出了Invalid salt的错误:

# 尝试用flask_bcrypt的代码
from flask_bcrypt import Bcrypt

class Authenticator:
    def __init__(self, flask_app):
        self.flask_app = flask_app
        self.bcrypt = Bcrypt(flask_app)

    def authenticate(self, email, password):
        user_password = self.get_user_password(email) 
        # 现在数据库里的密码哈希格式:$WP$2y$10$...
        # 待验证的明文密码:"something"
        
        try:
            if not self.bcrypt.check_password_hash(user_password, password):
                return False, Response.wrong_credentials(self.flask_app.site_url)
        except Exception as e:
            print(e)  # 抛出错误:Invalid Salt
        return True, None

我排查了半天也没搞明白为什么会报无效盐值,有没有朋友遇到过类似的问题?或者有没有适配WordPress 6.8新哈希格式的验证方法?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:44:35