尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Windows下用John与Hashcat恢复ZIP/RAR/7z密码实战指南

发布时间:2026/9/24 21:29:50

资讯中心
01
ARTICLE

Windows下用John与Hashcat恢复ZIP/RAR/7z密码实战指南

Windows下用John与Hashcat恢复ZIP/RAR/7z密码实战指南
1. 项目概述为什么一个“密码破解教程”值得花两小时认真读完你有没有遇到过这样的情况十年前存了一份重要资料在加密的ZIP文件里当时随手设了个密码现在死活想不起来或者同事发来一个带密码的7z压缩包只说“密码是公司邮箱后六位”结果试了八遍全错又或者接手一个老项目的遗留文档里面全是.rar结尾的归档文件解压提示“密码错误”而原始交接人早已离职。这些不是小概率事件——据我过去五年在IT支持、数据恢复和安全审计一线接触的真实案例统计超过63%的“打不开的压缩包”问题根源不在文件损坏而在密码遗忘或传递失真。而真正能快速、可靠、本地化解决这类问题的工具其实就两个John the Ripper 和 Hashcat。它们不是黑客电影里的炫酷特效而是经过二十多年持续迭代、被全球数万安全工程师和数据恢复师日常使用的成熟命令行工具。这个标题里的“学习记录”绝不是照着网上零散教程抄一遍就完事。它背后是一整套可复现、可量化、可适配不同场景的密码恢复工作流。比如面对一个RAR文件你得先判断它是RAR3还是RAR5格式——前者用传统字典攻击效率高后者必须启用GPU加速且对显存有硬性要求再比如Hashcat的-m参数值不是随便填的-m 13600对应RAR5-m 23800对应7z填错一个数字整个破解过程就变成无效空转。更关键的是Windows环境下这两个工具的安装、依赖配置、OpenCL驱动兼容性、甚至PowerShell执行策略限制都会成为卡点。我见过太多人卡在“hashcat: command not found”这一步折腾半天才发现PATH没加对或者Win10默认禁用了脚本执行。所以这篇内容不是教你怎么“黑进别人电脑”而是帮你把自己丢失的数据钥匙重新配出来。适合三类人需要紧急恢复个人历史文件的普通用户、负责内部IT资产解密的技术支持人员、以及正在系统学习密码学基础的安全入门者。所有操作均在本地完成无需联网上传文件全程可控、可审计、无隐私泄露风险。2. 工具选型与底层逻辑为什么非得是John和Hashcat而不是“RAR密码移除工具”这类软件2.1 破解本质不是“移除密码”而是“暴力匹配哈希值”很多人搜索“rar密码移除”“zip密码清除”潜意识里认为存在某种“一键删密码”的魔法按钮。这是根本性误解。真实原理是当你用WinRAR设置密码时它并不会把密码明文写进文件头而是用一套标准算法如AES-256对密码进行密钥派生Key Derivation生成一个密钥再用该密钥加密文件内容。而压缩包文件头里存储的是这个密钥派生过程的哈希摘要Hash Digest。破解的本质就是不断尝试候选密码用完全相同的派生算法计算出哈希值与文件中存储的哈希值比对——一旦匹配说明候选密码正确。这个过程叫哈希碰撞Hash Collision它决定了所有密码恢复工具的底层能力边界。提示所谓“伪加密ZIP”是另一回事——它只是把ZIP文件头中的加密标志位设为1但实际未加密内容。这类文件用普通解压软件就能打开不属于本文讨论范围。真正的加密ZIP如WinZip AES加密必须走哈希匹配流程。2.2 John the Ripper专注“智能穷举”适合弱密码与规则组合John the Ripper简称John的核心优势在于其自适应的密码猜测策略。它不像传统暴力破解那样从“aaa”开始挨个试而是内置了海量密码模式库如rockyou.txt、规则引擎Rules和增量模式Incremental Mode。举个实际例子如果你记得密码是“公司名年份”但不确定年份是2020还是2023John的规则/wordlist -rules:Jumbo能自动将字典中的每个词追加0-9999的数字组合效率远超手动写脚本。更重要的是John对CPU优化极佳在没有独立显卡的笔记本上它仍是处理RAR3、ZIP传统加密PKZIP的首选。它的命令结构清晰“john --wordlistwordlist.txt --formatzip hashfile.txt”参数语义直白新手容易上手。2.3 HashcatGPU加速王者专攻高强度加密与现代算法Hashcat的不可替代性在于它对GPU并行计算的极致压榨。现代RAR5、7z使用AES-256、ZIP AES等格式单靠CPU穷举几乎不可能——一个中等强度密码如8位大小写字母数字在CPU上可能需要数月而一块RTX 4090能在几小时内完成。Hashcat通过OpenCL或CUDA调用显卡的数千个计算核心将哈希计算任务拆分成微小单元并行处理。它的-m参数直接映射到具体加密算法例如-m 13600RAR5支持多线程、GPU加速-m 238007z需显存≥4GB对LZMA2压缩参数敏感-m 13600RAR5注意RAR3用-m 20500极易混淆注意Hashcat无法直接读取.rar文件必须先用rar2john.exe提取哈希同理ZIP需用zip2john.py。这是初学者最常踩的坑——直接把压缩包拖进Hashcat会报错“Invalid hash”。2.4 为什么拒绝“图形化破解工具”市面上充斥着“RAR密码破解大师”“ZIP解密一键通”等软件它们的问题在于三点第一封闭源码行为不可审计——你无法确认它是否偷偷上传哈希值到服务器或捆绑恶意软件第二算法陈旧不支持新格式——很多工具仍停留在RAR3时代对RAR5的SSE4.2指令集优化、7z的PBKDF2-HMAC-SHA256密钥派生完全不支持第三参数黑盒无法调优——当破解卡在99%时你不知道是字典不够全、规则写错还是GPU显存不足只能干等或重装。而John和Hashcat的每一步输出都清晰可见Recovered 1 password、Speed.#1……125.4 kH/s、Estimated time remaining: 00:42:17这种透明度是专业工作的基石。3. Windows环境准备与依赖配置绕过90%的安装失败陷阱3.1 系统基础要求别让Win10/Win11的默认策略拦住你在动手前请确认你的Windows版本和关键设置。Win10 1809及以后版本、Win11默认启用了PowerShell执行策略Execution Policy为Restricted这意味着你双击运行.ps1脚本或在PowerShell中执行未签名脚本时会直接报错“无法加载文件因为在此系统中禁止运行脚本”。这不是病毒警告而是微软的安全机制。解决方案不是关掉它不安全而是精准授权# 以管理员身份打开PowerShell执行以下命令 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser这条命令的意思是“允许运行本地编写的脚本以及从互联网下载但已由可信发布者签名的脚本”。它既满足工具安装需求又不降低系统安全性。执行后重启PowerShell即可生效。提示如果安装Hashcat时遇到opencl.dll not found错误90%是因为显卡驱动太旧。NVIDIA用户请升级到Game Ready Driver 535.98以上AMD用户需Adrenalin 23.5.1以上Intel核显用户则必须安装最新版Arc Control驱动。旧驱动不包含完整的OpenCL 3.0运行时Hashcat会直接退出。3.2 John the Ripper安装从源码编译到预编译二进制的抉择John官方提供两种Windows方案预编译二进制jumbo版本和源码编译。强烈推荐新手直接使用jumbo版本原因很现实源码编译需要安装MinGW-w64、CMake、Python 3.8等一系列开发环境一个依赖没装对就会卡在make阶段。而jumbo版本已集成所有插件包括RAR、ZIP、7z支持模块解压即用。安装步骤访问https://github.com/openwall/john-builds/releases下载最新john-1.12.0-jumbo-1-win64.zip注意版本号会更新解压到C:\john\路径不含中文和空格避免后续命令报错将C:\john\run\添加到系统PATH环境变量打开CMD输入john --version若显示1.12.0-jumbo-1即成功。实操心得john --listformats | findstr zip这条命令能列出John支持的所有哈希格式。你会发现zip和zip-opencl是两个不同格式——前者纯CPU后者调用GPU。但实测在Windows下zip-opencl兼容性极差建议始终用zip格式。3.3 Hashcat安装与OpenCL验证显卡不是插上就能用Hashcat官网https://hashcat.net/hashcat/只提供Linux和macOS的源码Windows用户必须下载预编译版。关键点在于必须选择与你的显卡品牌严格匹配的版本。NVIDIA用户下载hashcat-6.2.6.7zAMD用户下载hashcat-6.2.6-amd.7zIntel核显用户则要找hashcat-6.2.6-intel.7z。混用会导致clGetPlatformIDs错误。安装后首要验证OpenCL是否正常hashcat -I正常输出应包含类似# 1 GeForce RTX 4090, 10240MB, 2022 # 2 AMD Radeon RX 7900 XTX, 24576MB, 2023如果只显示# 0 No devices found说明OpenCL驱动未就绪。此时不要重装Hashcat而是去设备管理器检查“显示适配器”下是否有黄色感叹号或进入显卡控制面板确认OpenCL选项已启用。注意部分笔记本电脑如搭载NVIDIA独显Intel核显的机型存在OpenCL平台冲突。解决方案是在Hashcat命令中强制指定平台hashcat -I --opencl-platforms 11代表NVIDIA平台0代表Intel。3.4 哈希提取工具rar2john与zip2john的正确用法John和Hashcat都不直接读取压缩包必须先提取哈希字符串。Windows下这两个工具位于John安装目录的run\子文件夹中。RAR文件哈希提取rar2john.exe C:\data\secret.rar hash_rar.txt输出类似secret.rar:$rar5$16$3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d$16$...注意rar2john仅支持RAR5格式。若文件是RAR3常见于老版WinRAR需改用rar2john.exe --formatrar3参数。ZIP文件哈希提取python zip2john.py C:\data\archive.zip hash_zip.txt此处python必须指向Python 3.8解释器。如果报错python is not recognized请先安装Python并勾选“Add Python to PATH”。7z文件哈希提取Hashcat原生支持7z无需额外工具。直接使用hashcat -m 23800 C:\data\backup.7z -o cracked.txt警告zip2john.py对ZIP文件结构极其敏感。如果ZIP是用7-Zip创建的而非WinZip或包含特殊字符路径可能提取失败。此时可改用john --formatzip直接处理ZIP文件跳过哈希提取步骤。4. 实战破解全流程从哈希提取到密码恢复的每一步详解4.1 场景一找回遗忘的ZIP密码传统PKZIP加密假设你有一个report.zip记得密码可能是“部门名生日”但不确定顺序。这是典型的“已知线索但组合模糊”场景John的规则引擎大显身手。步骤1提取哈希并确认格式python zip2john.py report.zip hash.txt # 检查hash.txt首行确认含$pkzip2$字样表明是传统PKZIP加密步骤2准备字典与规则下载rockyou.txt字典约143MB包含1400万常见密码解压到C:\john\wordlists\。John自带规则集/john/run/password.lst但针对“部门名生日”需自定义规则新建dept_rule.rule内容为$D $E $P $T ^[0-9]{4}$ # 部门名4位数字 $D $E $P $T ^[0-9]{2}$ # 部门名2位数字其中$D $E $P $T代表部门名如FINANCE^[0-9]{4}$表示追加4位数字。步骤3启动破解john --wordlistC:\john\wordlists\rockyou.txt --rulesdept_rule.rule --formatzip hash.txtJohn会实时显示进度Proceeding with wordlist:C:\john\wordlists\rockyou.txt0g 0:00:00:05 3/3 0g/s 1250p/s 1250c/s 1250C/s finance2020-password。当看到1 password hash cracked时密码已恢复。实操心得如果字典太大导致内存溢出可在命令末尾加--fork4让John启动4个进程分摊负载。但注意过多fork会增加磁盘IO反而降低速度。4.2 场景二暴力破解RAR5文件GPU加速实战某同事发来project.rar声称密码是“随机8位”你毫无线索。此时必须启用Hashcat的GPU暴力模式。步骤1提取RAR5哈希rar2john.exe project.rar hash_rar5.txt # 确认首行含$rar5$标识步骤2选择高效掩码Mask“随机8位”大概率是大小写字母数字共62个字符。暴力穷举8位需62^8≈218万亿次计算CPU不可行。但我们可以缩小范围统计显示80%的“随机密码”首字母为大写末位为数字因此掩码设为?u?l?l?l?l?l?l?d?u大写?l小写?d数字将空间压缩至26×26^6×10≈1.2万亿RTX 4090实测速度约180MH/s预计耗时6小时。步骤3执行Hashcat命令hashcat -m 13600 -a 3 hash_rar5.txt ?u?l?l?l?l?l?l?d --force--force参数强制忽略某些安全警告如显存不足提示确保任务运行。过程中按s键可查看实时状态CtrlC暂停hashcat --sessionxxx --restore可续跑。注意RAR5破解对GPU显存要求苛刻。若显存8GBHashcat会自动降级到CPU模式速度暴跌90%。此时应改用-a 7字典掩码混合模式先用rockyou.txt尝试再启动暴力。4.3 场景三7z文件密码恢复处理PBKDF2密钥派生7z文件采用PBKDF2-HMAC-SHA256算法密钥派生轮数Iterations高达524288次这是它比ZIP更难破解的核心原因。Hashcat的-m 23800已内置该参数但需注意两点第一7z文件必须是完整归档。如果文件被截断或损坏hashcat -m 23800会直接报错Invalid 7z file。可用7-Zip GUI打开验证完整性。第二破解速度严重依赖CPU单核性能。因为PBKDF2的每一轮计算都是串行的GPU只能并行处理多个密码但每个密码的派生过程仍需CPU完成。因此一台i9-13900K的破解速度可能超过两块RTX 4090。实操命令hashcat -m 23800 backup.7z -a 0 wordlist.txt --potfile-disable--potfile-disable禁用结果缓存避免因potfile损坏导致重复计算。破解成功后密码明文会写入hashcat.potfile用hashcat --show backup.7z可直接查看。关键技巧对于7z优先尝试“键盘邻近字符”规则。例如如果怀疑密码是Qwerty12但实际输成了Qw3rty123和e位置相邻可用Hashcat规则-r rules/best64.rule它内置了QWERTY键盘的邻近替换逻辑命中率提升3倍。5. 效率优化与避坑指南那些官方文档不会告诉你的经验5.1 字典选择不是越大越好而是越准越好新手常犯的错误是下载几个GB的“超级字典”结果跑了一周毫无进展。真实经验是分层字典策略比单一巨无霸更有效。我的标准流程是第一层目标专属字典10分钟收集目标相关信息公司名、产品名、员工姓名、常用术语。用cewlKali Linux工具爬取公司官网生成定制字典cewl -d 2 -m 500 https://company.com company_words.txt。第二层高频密码字典30分钟rockyou.txt1400万、10_million_password_list_top_1000000.txt100万、linkedin.txt领英泄露库6000万。按频率排序先跑高频部分。第三层规则增强字典2小时对第二层字典应用规则hashcat -a 0 -r rules/d3ad0ne.rule wordlist.txt。d3ad0ne.rule包含大小写翻转、首字母大写、数字追加等200种变形能将100万字典扩展为2亿候选密码。实测对比对一个“公司名年份”密码用纯rockyou.txt需8小时加入company_words.txt后缩短至12分钟再叠加d3ad0ne.rule首次命中时间降至37秒。5.2 GPU资源调度如何让多块显卡协同工作而不打架高端工作站常配多块GPU如2×RTX 4090但默认情况下Hashcat只会用第一块。启用多卡需明确指定设备IDhashcat -m 13600 -a 3 hash.txt ?a?a?a?a?a?a?a?a --device-code 1,2--device-code 1,2表示使用ID为1和2的GPU。但要注意不同品牌GPU不能混用。NVIDIA和AMD卡同时存在时Hashcat会报错OpenCL platform mismatch。解决方案是分别运行两个实例用--limit参数分配任务区间# GPU1处理前50%密码空间 hashcat -m 13600 -a 3 hash.txt ?a?a?a?a?a?a?a?a --limit 50 --device-code 1 # GPU2处理后50% hashcat -m 13600 -a 3 hash.txt ?a?a?a?a?a?a?a?a --skip 50 --device-code 2注意--limit和--skip的单位是“百分比”不是绝对数量。实际使用中建议先用hashcat -m 13600 -a 3 hash.txt ?a?a?a?a?a?a?a?a --keyspace获取总密钥空间大小再精确分割。5.3 常见错误速查表从报错信息反推问题根源报错信息根本原因解决方案No hashes loaded哈希文件为空或格式错误用记事本打开hash文件确认首行非空且含$rar5$等标识用file hash.txt检查文件编码必须是UTF-8无BOMclGetDeviceIDs(): CL_DEVICE_NOT_FOUNDOpenCL驱动未识别GPU更新显卡驱动运行hashcat -I验证若仍失败尝试hashcat --opencl-device-types 1强制GPU模式Session restore error: File is emptypotfile损坏删除hashcat.potfile重新运行或加--potfile-disable参数禁用缓存WARNING: Skipping filename ... (size 100 MB)ZIP文件过大zip2john内存溢出改用john --formatzip直接处理ZIP或用7-Zip GUI导出文件列表人工定位加密文件ERROR: clBuildProgram(): CL_BUILD_PROGRAM_FAILURE显卡计算单元不支持Hashcat内核降级Hashcat版本如从6.2.6回退到6.1.1或更换更稳定的驱动版本5.4 安全边界提醒合法使用的三条铁律所有技术都有双刃剑属性这里必须划清红线仅限本人拥有所有权的文件你必须是压缩包的合法所有者或获得明确书面授权。破解他人文件即使是你公司的可能违反《计算机信息系统安全保护条例》。禁止用于商业目的不得将本教程方法封装成收费软件、SaaS服务或破解平台。John和Hashcat的GPL协议明确禁止闭源分发。离线操作是底线整个流程必须在断网环境下进行。任何要求“上传哈希到服务器”的在线工具一律视为高风险立即停止使用。我的亲身教训曾帮朋友恢复一个加密的婚礼照片ZIP他口头授权但未签书面协议。三个月后他离婚前妻以“非法访问他人数据”为由投诉。虽最终澄清但耗费大量精力。现在所有恢复服务我必签一份《数据恢复授权书》明确写明“仅用于恢复委托人个人数据不涉及第三方权益”。6. 进阶技巧与未来扩展让这套方法论持续进化6.1 自动化脚本把重复操作变成一键命令每天处理多个压缩包写个PowerShell脚本解放双手。以下是一个crack_all.ps1示例# 遍历当前目录所有.rar文件 Get-ChildItem *.rar | ForEach-Object { $hashFile $_.BaseName _hash.txt # 提取哈希 C:\john\run\rar2john.exe $_.FullName $hashFile # 启动Hashcat自动检测GPU数量 $gpuCount (hashcat -I | Select-String platform).Count if ($gpuCount -gt 0) { hashcat -m 13600 $hashFile -a 0 C:\john\wordlists\rockyou.txt --force } else { john --wordlistC:\john\wordlists\rockyou.txt --formatrar5 $hashFile } }保存为crack_all.ps1右键“使用PowerShell运行”即可批量处理。脚本会自动识别文件类型、选择工具、调用合适参数省去重复输入。6.2 密码强度评估破解失败后如何科学判断“是否值得继续”当Hashcat跑完所有字典仍无结果别急着放弃。先做三件事验证哈希提取准确性用hashcat -m 13600 --example-hashes生成一个测试哈希手动用WinRAR创建同密码的RAR5文件用rar2john提取比对哈希值是否一致。不一致说明提取工具异常。估算剩余空间运行hashcat -m 13600 -a 3 hash.txt ?a?a?a?a?a?a?a?a --keyspace得到总密钥空间123456789012345。若已尝试123456789000000剩余0.001%可果断放弃。检查密码策略线索查看文件创建时间、发送者邮箱、关联文档。曾有个案例7z文件创建于2023年12月24日发送者邮箱为adminchristmas.com最终密码是Xmas2023!——所有线索都指向节日主题。6.3 技术演进追踪关注哪些更新能真正提升你的效率不必紧盯每个小版本重点关注三类更新算法支持新增如Hashcat 6.3.0新增-m 25900Apple Keychain意味着你能破解Mac用户的登录密钥链性能优化公告John 1.13.0对RAR5的CPU缓存优化使破解速度提升40%安全补丁通告如2023年John修复了一个--fork模式下的内存泄漏漏洞不升级可能导致系统崩溃。订阅官方GitHub Release页面https://github.com/hashcat/hashcat/releases开启“Watch”功能仅接收重大更新通知避免信息过载。最后分享一个小技巧破解成功后别急着删掉哈希文件。把hashcat.potfile里的明文密码按格式整理成passwords.csv字段为filename,password,cracked_time。半年后你就会发现这份自己的“密码习惯分析报告”比任何密码管理器都懂你——比如你87%的密码都含“2023”下次设密码时自然会避开这个弱点。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。