WordPress 密码生成器

WordPress 密码生成器

生成可直接写入数据库的 WordPress 密码哈希,并校验已有哈希。计算在服务器端完成,不记录任何密码。

按 Enter 直接生成
算法
数值每 +1,计算耗时翻倍。默认值与本服务器 PHP 的 password_hash() 保持一致(PHP 8.4 起为 12)。

知识点

单向散列加密

单向散列加密是一种不可逆的加密方法,其核心是使用散列算法(Hash Function)将输入数据转换为固定长度的散列值(Hash Value)。这种转换是不可逆的,即无法从散列值还原出原始数据。

  1. 散列函数具有不可逆性:即便知道输出的散列值,也无法反推出原始输入。
  2. 无论输入的数据长度如何,输出的散列值长度都是固定的。
  3. 优质的散列函数应具备抗碰撞性(不同输入尽量不生成相同的散列值)。

常见的单向散列算法

  1. MD5:生成 128 位散列值,已被证明存在严重的碰撞漏洞,不再安全。
  2. SHA-1:生成 160 位散列值,2017 年被谷歌“Shattered”攻击成功,也已被淘汰。
  3. SHA-256、SHA-512:SHA-2 家族算法,分别生成 256 位和 512 位散列值,当前仍被广泛认为安全。
  4. bcrypt、scrypt、Argon2:专为密码存储设计的密码哈希函数,基于单向散列与密钥派生函数(KDF)原理:
    • 自动加入盐(Salt)防止彩虹表攻击
    • 支持多轮加密和可调的计算复杂度
    • 具有抗暴力破解和抗 GPU 并行攻击能力

WordPress 密码加密算法

WordPress 6.7 及以前版本采用 PHP 的密码哈希框架(phpass),使用多轮 MD5 加盐处理用户密码。从 WordPress 6.8 开始,默认改用 bcrypt:先对密码做 HMAC-SHA384 预处理再 base64,最后交给 password_hash(),并在结果前加上 $wp 前缀作为标记。

项目 WordPress 6.7 及以前 WordPress 6.8+(bcrypt)
算法 phpass(基于多轮 MD5) bcrypt(通过 password_hash() 实现)
安全性 中等,已无法抵御现代暴力破解 高,具备抗 GPU 并行破解能力
加密方式 多轮 MD5 + 自定义盐值 HMAC-SHA384 预处理 + password_hash() 内置盐值与成本控制
是否内置盐 是(由 phpass 生成) 是(由 password_hash() 自动生成)
抗暴力破解能力 较弱
是否支持自动升级 是(懒升级:用户登录时重新加密)
存储格式 $P$B…(34 字符) $wp$2y$10$…(63 字符)

使用提示

  • 为什么同一个密码每次生成的哈希都不同?盐值是随机的,这是设计如此。任意一次的结果都能通过校验。
  • 选哪个?站点是 WordPress 6.8 及以上就选 bcrypt;6.7 及以下必须用 PHPass,否则登录会失败。不确定就用「校验哈希」把库里现有的值粘进来,工具会告诉你它是哪种。
  • bcrypt 只取前 72 字节,所以 WordPress 先用 HMAC-SHA384 把任意长度压成 64 字符再交给 bcrypt——长密码不会被截断。
  • 直接改库后请让用户重新登录(旧的登录 Cookie 由密码哈希片段签名,改密码即失效)。
  • 本工具不写日志、不存数据库;但涉及生产密码时,最稳妥的做法仍是自建部署。