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
相关产品推荐
相关产品推荐

