直接修改 wp_users 表的 user_pass 字段行不通,因 WordPress 自2.5版起采用 wp_hash_password()(基于 phpass 的 bcrypt 变种)而非纯 MD5;正确做法是用 wp_set_password() 函数生成兼容哈希,或在 phpMyAdmin 中填入标准 phpass 格式(如 $P$BIR89zJjvQVZcNnK0bOQDqYFhI7qXu1)并确保 ID 准确、无字符缺失。
直接改 wp_users 表的 user_pass 字段行不通
wordpress 从 2.5 版本起就不再用纯 md5 存密码,而是用 wp_hash_password()(基于 phpass 的 bcrypt 变种)。你在 phpmyadmin 里手动填一个 md5('123456') 值进去,登录时一定失败——不是加密错了,是根本没走对验证流程。
常见错误现象:ERROR: The password you entered is incorrect. 或者登录后立刻被登出,后台提示“您没有权限访问此页面”。
- 别手动生成 MD5,WordPress 不认
- 别用在线 MD5 工具生成后粘贴,白忙活
- 别尝试在 SQL 里调用
MD5()函数更新,MySQL 的 MD5 和 WordPress 的哈希完全不兼容
正确做法:用 WordPress 自带的 wp_set_password() 函数生成哈希值
最稳妥的方式,是复用 WordPress 自身的密码哈希逻辑。这需要临时加一段 PHP 脚本,而不是在数据库里硬改。
操作步骤:
- 在网站根目录新建一个临时文件,比如
reset-pw.php - 写入以下内容(替换
admin和newpassword123):
require_once 'wp-load.php';
wp_set_password('newpassword123', 1); // 第二个参数是 user_id,1 通常是管理员
echo 'Done.';
访问 https://yoursite.com/reset-pw.php 一次,密码即生效。完事后立刻删掉这个文件。
为什么这么做:它调用了和后台“编辑用户”页面完全一致的哈希逻辑,兼容所有 WordPress 版本(包括 6.x),且自动处理盐值、迭代次数等细节。
如果只能用 phpMyAdmin(比如没 FTP 权限)
某些托管环境禁用文件写入,只能靠 phpMyAdmin。这时得绕过 WordPress 核心,但必须模拟它的哈希输出格式。新版 WordPress(5.7+)默认用 bcrypt,但会降级支持 phpass 格式(以 $P$ 开头)。
中文敏感词/违禁词检测与内容合规性检查工具。支持对小红书(Xiaohongshu)、Douyin(抖音)、WeChat(微信)、Weibo(微博)、Bilibili(哔哩哔哩)、Zhihu(知乎)、Taobao(淘宝)、JD.com(京东)等主流平台的禁用词、限用词及高风险词进行文本扫描与合规性分析。
可安全使用的哈希值(明文 password):
$P$BIR89zJjvQVZcNnK0bOQDqYFhI7qXu1
这是用标准 phpass(2^8 次迭代)生成的,WordPress 全版本识别。操作方式:
- 进 phpMyAdmin → 找到
wp_users表 - 定位
ID = 1的行(或你确认的管理员 ID) - 把
user_pass字段值替换成上面那串(含$P$) - 执行保存
注意:不要复制错字符,$P$B... 必须完整,少一个字符都会导致验证失败。
改完密码仍登不上?检查这几个地方
密码重置成功但登录失败,大概率不是哈希问题,而是其他干扰项:
-
wp-config.php里有没有定义FORCE_SSL_ADMIN但 HTTPS 配置异常?会导致登录态无法写入 cookie - 浏览器缓存了旧的
wordpress_logged_in_*cookie,清掉再试 - 插件冲突,特别是安全类插件(如 Wordfence、iThemes Security)可能拦截或覆盖登录逻辑
- 数据库里
user_login或user_email被意外改过,登录时输的是旧用户名
最省事的验证方式:用刚设的密码,直接在 wp-admin 页面登录;别先点“忘记密码”,那会走另一套流程,跟你刚改的字段无关。
真正麻烦的从来不是换密码,而是换完发现登录框背后还卡着七八个中间层。盯住 user_pass 字段值、cookie 状态、HTTP 协议一致性,这三个点对了,基本就稳了。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










