字典攻击
字典攻击 是什么?
字典攻击有针对性的密码猜测攻击,使用预先编制的常见词、泄露密码及规则衍生变体作为候选。
字典攻击通过仅尝试更有可能的候选,缩小暴力破解的搜索空间,包括常用词、姓名、日期、泄露密码以及基于规则的变形(如 "Password" → "P@ssw0rd!2025")。现代密码破解工具(Hashcat、John the Ripper)将字典、掩码、混合规则与马尔可夫模型叠加于已捕获的哈希上,比纯暴力破解快几个数量级。
为什么词表如此有效
真实的人类密码高度集中在密钥空间极小的一部分。最经典的词表 rockyou.txt 来自 2009 年 12 月的 RockYou 数据泄露:一处 SQL 注入漏洞泄露了约 3200 万条凭据,而该公司竟以明文存储。去重后包含 14,344,392 个密码的列表至今仍是 Kali Linux 的默认组件,通常是渗透测试者面对捕获哈希时最先动用的资源。后来的 RockYou2021、RockYou2024 等合集汇总了来自众多泄露事件的数十亿条字符串,但绝大多数命中仍出自最初的数百万条。
现代破解的运行方式
攻击者很少直接使用原始词表,而是套用规则文件(如 Hashcat 的 best64、dive)进行 leet 替换、大小写切换以及追加年份/后缀,再用掩码与马尔可夫攻击处理长尾。在消费级 GPU 上,这能在数秒内破解快速哈希(MD5、无盐 SHA-1、NTLM)背后的弱密码。
防御
防御主要在存储层:采用 Argon2id、bcrypt、scrypt(或高迭代 PBKDF2)等加盐 memory-hard 哈希,使每次猜测都代价高昂。再结合泄露密码筛查(如 Have I Been Pwned 的 k-匿名 API)、长口令短语、限速、账户锁定与 MFA,使被破解的密码不足以单独得手。
flowchart LR
A[捕获的密码哈希] --> B[加载词表<br/>rockyou.txt]
B --> C[套用变形规则<br/>leet、后缀、大小写]
C --> D[用目标的盐与算法<br/>对每个候选求哈希]
D --> E{摘要是否匹配?}
E -->|是| F[密码已恢复]
E -->|否| G[下一个候选]
G --> C● 示例
- 01
用 rockyou.txt 和 Hashcat 规则文件破解泄露的密码数据库。
- 02
针对捕获的 NTLM 哈希,尝试包含企业相关词汇的定制字典。
● 常见问题
字典攻击 是什么?
有针对性的密码猜测攻击,使用预先编制的常见词、泄露密码及规则衍生变体作为候选。 它属于网络安全的 攻击与威胁 分类。
字典攻击 是什么意思?
有针对性的密码猜测攻击,使用预先编制的常见词、泄露密码及规则衍生变体作为候选。
如何防御 字典攻击?
针对 字典攻击 的防御通常结合技术控制与运营实践,详见上方完整定义。
字典攻击 还有哪些其他名称?
常见的别称包括: 词表攻击。