bcrypt 使用预先哈希的 HMAC-SHA384。WordPress 6.8 及更高版本的格式。前缀为 "$wp$2y$"。
WordPress 的密码无法“解密”:该算法是单向的。要查看密码是否与哈希值相匹配,请使用“验证”模式。
bcrypt 轮数 (4-15)。WordPress 默认使用 10。
工作原理
此工具以与 WordPress 相同的格式生成和验证密码哈希,便于迁移用户、修复登录或直接向数据库插入密码。
它支持两种格式:带 HMAC-SHA384 预哈希的 bcrypt(WordPress 6.8 及以后,前缀 $wp$2y$)以及基于迭代 MD5 的 phpass(更早版本,前缀 $P$)。在验证模式下,它会自动检测格式。
成本控制应用多少轮:成本越高,哈希计算越慢,也越能抵抗暴力破解。WordPress 默认对 bcrypt 使用 10,对 phpass 使用 8。
示例
bcrypt (WP 6.8+)$wp$2y$10$… → 在标准 60 字符 bcrypt 前加上 $wp$ 前缀。phpass (WP < 6.8)$P$B… → 共 34 个字符,包含 8 个字符的盐值。每个哈希都包含一个随机盐值,因此相同密码每次都会产生不同的哈希。验证密码 + 存储的哈希 → 匹配 / 不匹配。使用场景
- 通过直接编辑 wp_users 表中的 user_pass 字段来重置用户密码。
- 在保留现有密码的情况下,将账户迁入或迁出 WordPress。
- 检查密码是否与从数据库导出的哈希匹配。
- 生成测试哈希,以开发或调试站点的身份认证。
常见问题
WordPress 对密码使用什么格式?
从 6.8 版起使用带 HMAC-SHA384 预哈希的 bcrypt(前缀 $wp$2y$)。更早版本使用 phpass,一种基于迭代 MD5 的可移植方案(前缀 $P$)。两者都包含盐值。
为什么 WordPress 6.8 改用 bcrypt?
phpass(迭代 MD5)在当今攻击面前已过时;bcrypt 抵抗力强得多。SHA-384 预哈希还能避开 bcrypt 对密码的 72 字节限制。
我可以把哈希直接粘贴到数据库中吗?
可以。将生成的哈希复制到 wp_users 表的 user_pass 字段;WordPress 登录时同时识别 bcrypt 和 phpass 格式。
什么是成本,应该使用什么值?
它是工作因子,即计算多少轮。值越高越安全,但越慢。默认值(bcrypt 为 10,phpass 为 8)提供了良好的平衡。
相同密码总会生成相同哈希吗?
不会。每个哈希都包含随机盐值,因此相同密码会产生不同哈希。所以要核对密码时,应使用验证模式,而不是相互比较哈希。
我的密码会发送到服务器吗?
不会。所有哈希计算和验证都在你的浏览器本地完成;密码绝不会离开你的设备。