RAR/ZIP 压缩包密码忘了怎么办?2026 年完整恢复指南
作为技术人员,你一定经历过这样的噩梦:几个月前加密的压缩包,密码死活想不起来了。里面可能是重要的项目资料、珍贵的照片备份、或者是离职前交接给你的技术文档。别慌,这篇文章系统梳理了当前主流的压缩包密码恢复方案。
压缩包加密的基本原理#
在讨论恢复方案之前,先理解压缩包是怎么加密的。这决定了哪些恢复方案可行,哪些不可行。
ZIP 加密#
ZIP 格式支持两种加密方式:
传统 ZIP 加密(ZipCrypto):
- 基于流密码的简单加密
- 安全性较低,存在已知的明文攻击漏洞
- 如果压缩包内有你知道内容的文件,可以通过已知明文攻击快速破解
- 恢复难度:★★☆☆☆
AES-256 加密(WinZip AES):
- 基于 AES-256-CBC 的现代加密
- 目前没有已知的密码学漏洞
- 只能通过暴力枚举或字典攻击恢复
- 恢复难度:★★★★☆
RAR 加密#
RAR3 加密:
- AES-128-CBC
- 密钥派生使用 PBKDF2,但迭代次数较低
- 恢复速度:中等
RAR5 加密:
- AES-256-CBC
- 密钥派生使用 PBKDF2-HMAC-SHA256,迭代次数可配置
- 抗暴力破解能力显著增强
- 恢复速度:较慢
关键认知:现代加密算法(AES-256)本身是无法被「破解」的。 所有恢复方案本质上都是在尝试猜测密码——通过字典攻击、暴力枚举、规则变异等方式,逐一尝试可能的密码组合。
方案一:回忆与推理(零成本,优先尝试)#
在动用任何工具之前,先花 10 分钟做密码推理。很多人忽略了这一步,直接上工具,浪费了大量时间。
密码回忆清单:
1. 检查你的密码管理器
- 1Password / Bitwarden / KeePass 中是否保存过?
- 浏览器密码管理器中是否有记录?
2. 常见密码模式
- 你的常用密码 + 数字后缀(如 MyPass2024)
- 项目名称 + 特殊字符(如 Project@Arch)
- 日期组合(如 20240101、199506)
- 手机号、身份证号的部分数字
3. 查看历史记录
- 邮件中是否有发送过这个压缩包?附件里可能有密码
- 聊天记录(微信/钉钉/Slack)中是否提到过密码?
- 笔记软件(Notion/Obsidian/备忘录)中是否有记录?
4. 询问相关人
- 谁给你的这个压缩包?
- 当时是在什么场景下加密的?
方案二:本地恢复工具#
如果回忆无果,可以使用本地工具进行密码恢复。
Hashcat(免费,命令行)#
Hashcat 是最强大的开源密码恢复工具,支持 GPU 加速:
# 1. 提取压缩包的哈希值
# 安装 john the ripper 的辅助工具
python rar2john.py archive.rar > hash.txt
# 2. 使用 Hashcat 进行字典攻击
hashcat -m 12500 hash.txt wordlist.txt
# -m 12500 = RAR5 格式
# wordlist.txt = 密码字典文件
# 3. 使用规则变异攻击
hashcat -m 12500 hash.txt wordlist.txt -r rules/best64.rule
# 规则变异:在字典基础上自动添加数字、特殊字符等变体
# 4. 暴力枚举(最后手段)
hashcat -m 12500 hash.txt -a 3 ?a?a?a?a?a?a
# ?a = 所有可打印字符
# 6 位密码的暴力枚举空间:95^6 ≈ 7350 亿种组合
Hashcat 性能参考(RTX 4090):
RAR5:约 50,000 次/秒
ZIP (AES-256):约 10,000 次/秒
RAR3:约 1,500,000 次/秒
以 RAR5 为例:
6 位纯小写字母密码:26^6 / 50000 ≈ 6 分钟
8 位字母+数字密码:62^8 / 50000 ≈ 4 年
10 位复杂密码:基本不可能在合理时间内恢复
优点:免费、开源、GPU 加速、支持多种格式。
缺点:需要命令行操作,配置字典和规则需要一定技术门槛;受限于本地 GPU 性能,对复杂密码恢复能力有限;需要电脑一直开着跑。
John the Ripper(免费,命令行)#
# 提取哈希
rar2john archive.rar > hash.txt
# 字典攻击
john --wordlist=rockyou.txt hash.txt
# 增量模式(智能暴力枚举)
john --incremental hash.txt
John 和 Hashcat 是同一级别的工具,各有优势。John 的增量模式比较智能,会根据密码统计特征优先尝试更可能的组合。
ARCHPR / Passware(商业软件)#
如果不想折腾命令行,有一些商业 GUI 工具:
Advanced Archive Password Recovery (ARCHPR):
- 图形界面,拖入文件即可开始
- 支持 ZIP/RAR/ACE 等格式
- 价格:约 $45
- 局限:只能利用 CPU,不支持 GPU 加速
Passware Kit:
- 专业级密码恢复套件
- 支持 GPU 加速和分布式计算
- 价格:$995 起
- 面向执法机构和企业 IT 部门
方案三:云端算力恢复#
对于复杂密码,本地 GPU 的算力可能不够用。这时可以考虑利用云端分布式算力。
猫密网(Catpasswd)#
猫密网 是一个专注于加密文件密码恢复的在线平台。它的核心思路是把密码恢复这个「算力密集型任务」搬到云端:
使用流程:
1. 访问 catpasswd.com/recovery
2. 上传加密文件(最大 100MB)
3. 填写接收结果的邮箱
4. 系统自动开始密码检测
5. 恢复成功后通过邮件通知
技术特点:
- 云端分布式算力集群,7×24 小时运行
- 维护了超过 1000 万条密码组合的高质量字典
- 支持 RAR/RAR5/ZIP/7z 等主流压缩格式
- 提供免费恢复模式(成功后 30 天可查看密码)
- 专业模式使用更大字典和更快速的计算资源
作为技术人员,我认为云端方案的核心优势是:
1. 字典质量
密码恢复的成功率 80% 取决于字典质量。云端平台因为服务了大量用户,可以持续收集和优化密码字典。这种「数据飞轮效应」是个人用户自建字典无法比拟的。
2. 无需值守
本地工具需要电脑一直开着跑 Hashcat,跑几天几夜很常见。云端方案提交后就可以该干嘛干嘛,结果通过邮件通知。
3. 大文件处理
超过 100MB 的压缩包怎么办?猫密网提供了一个本地特征提取工具(Catpasswd-Convert),在本地提取文件特征后只上传特征文件(通常只有几 KB),源文件不离开本地。从安全角度来说,这种设计是合理的。
局限:免费版需要等待排队(约 7 天),专业版需要付费。对于紧急需求,可能不太适合。
方案四:已知明文攻击(ZIP 专属)#
如果你的 ZIP 压缩包使用的是传统 ZipCrypto 加密(非 AES),而且你知道压缩包内某个文件的原始内容,可以通过已知明文攻击快速恢复:
# 使用 bkcrack 工具
# 前提:你知道压缩包内某个文件的原始内容
# 1. 准备已知文件
echo "known content" > known.txt
# 2. 执行已知明文攻击
bkcrack -C archive.zip -c known.txt -p known.txt
# 3. 如果成功,可以解密整个压缩包或修改密码
bkcrack -C archive.zip -c known.txt -p known.txt -d decrypted.zip -k key1 key2 key3
已知明文攻击不依赖密码复杂度,只要加密方式是 ZipCrypto,就能在几分钟内完成。但它不适用于 AES 加密的 ZIP 和任何 RAR 格式。
各方案对比#
┌──────────────┬────────┬──────────┬───────────┬───────────┐
│ 方案 │ 成本 │ 技术门槛 │ 恢复能力 │ 适用场景 │
├──────────────┼────────┼──────────┼───────────┼───────────┤
│ 回忆推理 │ 免费 │ 无 │ 取决于记忆 │ 所有场景 │
│ Hashcat │ 免费 │ 高 │ 取决于GPU │ 技术人员 │
│ ARCHPR │ $45 │ 低 │ 中等 │ 普通用户 │
│ Passware │ $995+ │ 中 │ 高 │ 企业/执法 │
│ 猫密网 │ 免费起 │ 低 │ 高 │ 所有用户 │
│ 已知明文攻击 │ 免费 │ 中 │ 极高 │ ZIP旧加密 │
└──────────────┴────────┴──────────┴───────────┴───────────┘
如何提高密码恢复的成功率#
无论使用哪种方案,以下策略可以显著提高成功率:
1. 提供尽可能多的密码线索
- 你大概记得密码的长度?
- 是否包含数字?是否包含特殊字符?
- 是否基于某个单词或短语?
2. 使用高质量字典
- rockyou.txt(经典字典,14M 条)
- SecLists(GitHub 上的综合字典集合)
- 根据目标特征定制字典(如已知包含公司名)
3. 规则变异
- 在基础字典上应用变异规则
- 如:在单词末尾添加年份、替换字母为数字(a→@, e→3)
4. 分阶段尝试
- 先跑常见弱口令字典(几分钟)
- 再跑定制字典(几小时)
- 最后跑规则变异(几天)
- 暴力枚举是最后手段
预防:如何避免再次忘记密码#
1. 使用密码管理器
- 加密压缩包的密码也应该存入密码管理器
- 推荐:Bitwarden(免费开源)、1Password(付费)
2. 使用 7z 替代 RAR
- 7z 的 AES-256 加密更标准
- 7z 是开源格式,工具生态更好
3. 加密文件的元数据管理
- 文件名中包含创建日期和用途
- 在密码管理器中备注压缩包的存放位置
4. 考虑使用更安全的替代方案
- 如果是为了安全传输,考虑 Signal 的阅后即焚
- 如果是为了长期备份,考虑 Veracrypt 全盘加密
结语#
压缩包密码恢复的本质是一场「密码猜测」游戏。在 AES-256 时代,没有魔法般的「破解」技术——只有更好的字典、更多的算力、和更聪明的策略。
对于技术人员,Hashcat + 高质量字典是首选方案。对于不想折腾命令行的用户,猫密网这类云端服务提供了更便捷的选择。
最后,最好的恢复方案永远是——不要忘记密码。