0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
配置
在 WordPress 使用的格式中生成和验证密码哈希。加密时,输入密码以获取准备好插入数据库的哈希。验证时,将明文密码与存储的哈希进行比较,以确认它们是否相同。

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)提供了良好的平衡。

相同密码总会生成相同哈希吗?

不会。每个哈希都包含随机盐值,因此相同密码会产生不同哈希。所以要核对密码时,应使用验证模式,而不是相互比较哈希。

我的密码会发送到服务器吗?

不会。所有哈希计算和验证都在你的浏览器本地完成;密码绝不会离开你的设备。