You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中password_hash的PASSWORD_DEFAULT对应哪种密码哈希算法

password_hash() 中 PASSWORD_DEFAULT 的默认算法说明

首先明确核心结论:PASSWORD_DEFAULT 根本不是一个独立的哈希算法,它只是PHP提供的一个「随版本自动更新的默认算法标记常量」,永远指向当前PHP版本官方认定的最适合密码存储的安全哈希算法,不存在PHP专属叫这个名字的哈希实现。
它指向的所有算法都是行业通用的公开标准密码哈希算法,和md5、sha512同属公开散列标准范畴,但比这俩专门针对密码存储场景做了安全设计(自带随机盐、支持调整计算成本抗暴力破解),不同PHP版本对应的默认算法如下:

  • PHP 5.5.0 到 PHP 7.3.x 全版本:默认对应 bcrypt(对应常量PASSWORD_BCRYPT),生成的哈希值固定60位,和其他编程语言实现的bcrypt结果完全互通兼容,不是PHP私有算法。
  • PHP 7.4.0 到 PHP 8.0.x 全版本:官方曾计划将默认算法替换为Argon2i,最终没有在正式版本落地,这个阶段默认算法仍然是bcrypt。
  • PHP 8.1.0 及以上更新版本:默认算法正式替换为Argon2id(对应常量PASSWORD_ARGON2ID),这是目前全行业公认安全性最高的密码专用哈希算法之一,同样是跨语言通用的公开标准,不是PHP专属实现。

考试需要记的高频考点:

  1. 不要把PASSWORD_DEFAULT当成独立算法,它只是默认算法的别名,会随PHP版本升级自动切换
  2. 所有被设为默认的算法都是公开通用标准,不存在PHP私有哈希的情况
  3. 如果考题没有指定PHP版本,默认考察的标准答案是bcrypt,这是password_hash函数从诞生到沿用最久的默认值

如果要在本地验证当前版本的默认算法,直接执行var_dump(PASSWORD_DEFAULT);,输出的常量值和对应算法一一对应:值为1就是bcrypt,值为3就是Argon2id。

内容的提问来源于stack exchange,提问作者Nutzer678

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:36:17