直接修改 wp_users 表的 user_pass 字段即可重置密码,但必须用 WordPress 原生 PHPass(推荐)或兼容 MD5 方式生成哈希值,不可用明文或自定义哈希;需通过临时 PHP 文件调用 PasswordHash 类生成合规哈希,再在 phpMyAdmin 中粘贴完整字符串更新,并登录后检查角色、站点地址和 session_tokens。
直接改 wp_users 表里的 user_pass 字段就行,但必须用 md5(wordpress 5.6+ 默认仍兼容)或 phpass(推荐),不能填明文或随便哈希。
找到正确的用户记录并确认加密方式
在 phpMyAdmin 中打开 WordPress 数据库,进入 wp_users 表(前缀可能不是 wp_,请先查 wp_options 表的 option_name = 'table_prefix' 或看其他表名确认)。找到目标管理员的行,记下 ID 和当前 user_pass 值的长度和格式:
- 如果原值是 32 位十六进制字符串(如
5f4dcc3b5aa765d61d8327deb882cf99),大概率是纯 MD5 —— 可临时用,但不安全 - 如果原值以
$P$或$2y$开头(如$P$BIR7QvF1JZqKzUaLQcXwD9uGZV0Z91/),说明启用了 PHPass(WordPress 默认),必须用对应方式生成 - 别依赖“看起来像 MD5”来判断,
user_pass字段类型是VARCHAR(255),长度不等于算法
生成合规的密码哈希值
不要手敲 MD5,也不要复制别人博客里写的“在线生成工具”——那些多数没处理盐值或版本兼容。最稳的方式是复用 WordPress 自身逻辑:
- 临时创建一个 PHP 文件(比如
hash.php),放在 Web 根目录下,内容为:<?php<br>require_once('./wp-includes/class-phpass.php');<br>$hasher = new PasswordHash(8, TRUE);<br>echo $hasher->HashPassword('你的新密码');<br>?> - 访问该文件,得到类似
$P$BIR7QvF1JZqKzUaLQcXwD9uGZV0Z91/的结果,复制整串 - 如果无法上传文件,可用本地 PHP 环境运行(确保有
class-phpass.php,它在 WordPress 源码里);千万别用md5('xxx')函数直出,WordPress 不认
在 phpMyAdmin 中安全更新密码字段
回到 wp_users 表,点击目标行的 Edit(铅笔图标),修改 user_pass 字段:
Word报告自动生成神器。自动生成专业Word文档报告,支持模板填充、目录生成、表格/图表插入、页眉页脚、多级标题、样式主题、批量邮件合并。当用户需要生成Word报告、创建合同文档、批量生成通知/证书、填充Word模板、制作商业计划书时触发。
- 粘贴上一步生成的完整哈希值(含
$P$等前缀) - 确认
user_login和user_email没被意外改掉 - 勾选
UTF8mb4_unicode_ci排序规则(避免特殊字符截断) - 点
Go保存 —— 此时密码已生效,立刻可登录后台 - 操作完删掉临时
hash.php,防止泄露哈希逻辑
登录后必须立即检查的三件事
成功用新密码登录 WordPress 后,别急着关页:
立即学习“PHP免费学习笔记(深入)”;
- 进「用户 → 所有用户」确认该账号的
Role仍是Administrator(有时误操作会连带改错wp_usermeta里的wp_capabilities) - 检查「设置 → 通用」里的站点地址是否异常(有些黑链脚本会顺手改
siteurl和home) - 查看
wp_usermeta表中对应user_id的session_tokens字段是否为空 —— 若非空,建议清空,否则旧登录态可能还在
PHPass 哈希包含动态盐值和迭代次数,每次生成都不一样,所以别想着“备份一个哈希反复用”。重置只是应急,长期还是得开两步验证、限制登录尝试、定期审计用户列表。


















