Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 894

密码

审核人Cybersecurity entrepreneur & security researcher

密码 是什么?

密码用户向系统证明身份所提供的一串秘密字符,传统上是占主导地位的单因素认证方式。


密码是历史最悠久、应用最广泛的认证方式:用户提交一个已知的秘密,服务器将其(在正确实现下应为加盐哈希)与存储值进行比对。它的优势在于简单,但一个可以被键入的共享秘密,同样可能被钓鱼、猜测、重复使用或泄露。

为何明文存储是致命的

服务器绝不能存储明文密码。RockYou 泄露事件(2009 年)以明文形式暴露了约 3200 万个密码,该列表至今仍是密码猜测字典的重要来源。正确做法是使用缓慢且内存密集的函数——bcryptscryptArgon2id——为每个用户存储加哈希,这样即使数据库被窃取也难以低成本还原,且相同的密码不会产生相同的哈希。额外的机密"胡椒"(pepper)和自适应工作因子会提高使用 Hashcat 等工具进行离线破解的成本。

攻击手法

常见攻击包括:撞库(重放来自其他泄露的用户名/密码组合)、密码喷洒(用少数常见密码尝试大量账户以规避锁定)、暴力破解以及键盘记录。由于秘密可重复使用,一次钓鱼即可获得持久访问权限。

NIST 的最新建议

NIST SP 800-63B(第 4 版,2024–2025 年)规定最短 8 个字符——当密码是唯一认证因素时为 15 个——支持最长 64 个字符,并要求将提交的密码与泄露及常见词黑名单进行比对。它明确指出组织不得强制施加任意的组合规则(强制符号/大小写混合),也不得在没有泄露证据的情况下要求周期性更换。持久的解决方案是速率限制、MFA 以及向抗钓鱼的 passkey(FIDO2/WebAuthn)迁移。

flowchart TD
  A[用户输入用户名+密码] --> B[服务器取出存储记录<br/>盐+哈希]
  B --> C["计算 Argon2id / bcrypt<br/>hash(密码+盐)"]
  C --> D{是否与存储值<br/>匹配?}
  D -->|否| E[拒绝并递增<br/>速率限制计数器]
  D -->|是| F{是否要求 MFA<br/>或 passkey?}
  F -->|是| G[验证第二因素]
  F -->|否| H[授予会话]
  G --> H
  B --> I[设置/修改时对照<br/>泄露黑名单筛查]

示例

  1. 01

    在邮箱账户中输入用户名和密码进行登录。

  2. 02

    Web 应用使用 bcrypt 哈希加上每用户独立的盐来存储用户密码。

常见问题

密码 是什么?

用户向系统证明身份所提供的一串秘密字符,传统上是占主导地位的单因素认证方式。 它属于网络安全的 身份与访问 分类。

密码 是什么意思?

用户向系统证明身份所提供的一串秘密字符,传统上是占主导地位的单因素认证方式。

如何防御 密码?

针对 密码 的防御通常结合技术控制与运营实践,详见上方完整定义。

密码 还有哪些其他名称?

常见的别称包括: 密码认证, 共享密钥。

相关术语

另见