ZIP密码破解实操指南:三步用 bkcrack 找回遗忘的密码

发布时间:2026/8/19 15:00:00
ZIP密码破解实操指南:三步用 bkcrack 找回遗忘的密码 ZIP密码破解实操指南三步用 bkcrack 找回遗忘的密码【免费下载链接】bkcrackCrack legacy zip encryption with Biham and Kochers known plaintext attack.项目地址: https://gitcode.com/gh_mirrors/bk/bkcrack你是否也有过这样的瞬间——翻出一个尘封多年的压缩包里面装着当年的毕业设计、老照片或是离职交接的工作资料输入密码时却怎么都对不上面对打不开的 ZIP 文件多数人的第一反应是放弃或者花钱找专业恢复。而今天要介绍的bkcrack正是为ZIP密码破解而生的开源命令行工具它基于 Biham 与 Kocher 提出的已知明文攻击算法专攻传统 ZipCrypto 加密能高效恢复加密文件的访问权限。更妙的是你甚至不需要知道原密码只要对文件内容略知一二就能破门而入。忘密码的一瞬间先别急着删文件先讲个真实得不能再真实的场景深夜加班你急需打开一个月前压缩存档的合同扫描件密码却像蒸发了一样。试了十几次组合窗口弹出密码错误那一刻你连砸键盘的心都有。别慌。bkcrack 就是为这种时刻准备的。它是一款免费开源、单文件即可运行的命令行程序核心能力可以浓缩成三句话能力说明恢复内部密钥给出密文和至少 12 字节已知明文反推出加密状态移除或修改密码拿到密钥后直接生成无密码或新密码的新压缩包反推原密码基于密钥暴力枚举找回你忘记的那个原始口令注意它的目标范围只针对 ZIP 加密家族中的ZipCrypto也叫传统 PKWARE 加密、旧式加密这是 WinZip、7-Zip 等软件里最经典的加密方式至今仍有海量压缩包在用。如果你的文件是 AES 加密的那不在它的射程之内——这一点我们后面细说。一句话总结它不靠猜密码而是靠已知内容抄近路。这感觉就像你忘了保险箱密码但碰巧知道箱子里第一份文件的抬头写了什么于是顺着这条线索撬开了整个保险箱。三分钟安装教程把 bkcrack 跑起来既然工具这么能打第一步当然是把它装到你的电脑上。安装方式有两种任选其一。方式一直接用预编译版本最快到项目的发布页面下载对应你操作系统Windows / macOS / Ubuntu的压缩包解压后即可运行。Windows 用户如果提示缺少运行库装一下微软的 Visual C 运行库就行。方式二从源码编译最灵活先克隆仓库git clone https://gitcode.com/gh_mirrors/bk/bkcrack cd bkcrack然后执行三条 CMake 命令编译产物会装进install目录cmake -S . -B build -DCMAKE_INSTALL_PREFIXinstall cmake --build build --config Release cmake --build build --config Release --target install装好后运行bkcrack -h能看到帮助信息说明一切就绪。整个过程比装一个普通软件还快全程不需要管理员权限也不依赖第三方库清爽得很。实战演示破解官方示例 ZIP 全流程光说不练假把式。项目仓库的example文件夹里自带一个加密示例secrets.zip里面装着两张秘密文件正好拿来完整走一遍破解流程。跟着敲十分钟内你就能体验到原来这么简单的快乐。第一步查看压缩包结构bkcrack -L example/secrets.zip输出如下Index Encryption Compression CRC32 Uncompressed Packed size Name ----- ---------- ----------- -------- ------------ ------------ ---------------- 0 ZipCrypto Deflate 7ca9f10a 54799 54700 advice.jpg 1 ZipCrypto Store a99f1d0d 1265 1277 spiral.svg两个文件都用了 ZipCrypto 加密其中spiral.svg是Store未压缩存储——这简直是为你量身定做的攻击靶子。第二步准备已知明文SVG 图像文件有个固定套路开头必然是?xml version1.0。这就是你的已知明文共 20 字节远超 12 字节的最低要求。把它写进一个文件-n防止 echo 追加换行符echo -n ?xml version1.0 plain.txt第三步发起攻击bkcrack -C example/secrets.zip -c spiral.svg -p plain.txt稍等片刻屏幕会刷出进度然后弹出三组十六进制数Keys: c4490e28 b414a23d 91404b31这三组数就是加密内部状态相当于保险箱的万能钥匙。拿到它后面就全是收获环节了。第四步解锁文件三种姿势任选生成一个去掉密码的新压缩包bkcrack -C example/secrets.zip -k c4490e28 b414a23d 91404b31 -D secrets_unlocked.zip或者改成你自己记得住的新密码bkcrack -C example/secrets.zip -k c4490e28 b414a23d 91404b31 -U secrets_new.zip easy还可以逐文件解密。advice.jpg是 Deflate 压缩的解密后还需用项目自带的脚本解压bkcrack -C example/secrets.zip -c advice.jpg -k c4490e28 b414a23d 91404b31 -d advice.deflate python3 tools/inflate.py advice.deflate advice.jpg第五步彩蛋找回原密码好奇自己当年到底设了什么密码给定字符集和长度上限bkcrack 能从密钥反推原始口令bkcrack -k c4490e28 b414a23d 91404b31 --bruteforce ?a --length 12示例文件的密码最终被还原为W4sF0rgotten——是不是很有致敬意味整个过程行云流水你甚至没碰过任何暴力猜密码的按钮。原理篇已知明文攻击为何如此神奇看到这里你多半会好奇凭什么 20 个字节就能撬开整个压缩包这得从 ZipCrypto 的加密机制说起。传统 ZIP 加密本质是异或用一个由密码生成的伪随机字节流叫密钥流逐字节和文件内容叫明文做异或运算得到加密数据叫密文。而密钥流的生成器状态只有三个 32 位整数。问题就出在这。1994 年密码学家 Biham 和 Kocher 发表论文指出只要同时拿到一段密文和对应的明文就可以反向推导出密钥流生成器的内部状态进而解密全部数据。这就是已知明文攻击——你不需要知道密码只需要对账一段已知内容。bkcrack 正是这篇论文的开源实现。实操中有几个要点值得记住明文越多越快至少 12 字节其中 8 字节必须连续已知明文越长攻击耗时越短。检查字节是免费赠品ZIP 规范规定每个加密条目前有 12 字节加密头其最后一个字节可由文件元数据推算出bkcrack 从压缩包加载密文时会自动把它算进已知明文。未压缩文件是首选Store 文件的内容和密文一一对应明文直接就是原文件本身而 Deflate 压缩文件的明文是压缩后的字节你得先猜出压缩结果才能对账难度陡增。所以实战的第一原则永远是挑压缩包里那个 Store 存储的文件下手。这就好比破门时专挑没上锁的窗户。常见问题新手最容易踩的五个坑Q1bkcrack 能破解所有 ZIP 加密吗不能。它只针对传统 ZipCryptoPKWARE 流密码。WinZip、7-Zip 提供的 AES 加密AES-128/256不在攻击范围内遇到 AES 加密请换思路。Q2至少需要多少已知明文理论下限是 12 字节其中 8 字节必须连续。如果你只确定 8~11 字节的连续内容但零散知道其他位置的几个字节可以用-x参数补充稀疏明文凑足 12 字节总量。Q3我完全不知道文件内容怎么办从文件类型猜。SVG/XML 开头是?xmlPNG 有固定文件头JPEG 以FFD8FF开头……这些签名都是现成的已知明文。另一个思路是找同源文件比如压缩包里有个常见的.dll去网上找到原版再模拟它的压缩方式生成明文。Q4破解成功后就一定要知道原密码吗完全不需要。拿到三组密钥后你可以直接移除密码、改成新密码或逐文件解密。原密码只是一个可选的战利品不是解锁的前提。Q5明文位置不在文件开头怎么办用-o指定偏移量即可。如果明文包含加密头的一部分偏移量还可以是负数。bkcrack 对这类情况支持得很周到。进阶技巧与合规使用提醒熟练之后你可以玩得更花。比如用密钥把压缩包改个新密码解压编辑内容后再用--change-keys恢复原来的加密状态实现不知道密码也能改包内文件或者把攻击逻辑写进脚本批量检测公司内部文档的加密强度——这正是安全审计的常见姿势。最后必须认真说几句。技术本身是中性的但使用必须守住边界只对自己拥有所有权或已获明确授权的文件进行破解不要用 bkcrack 去破解他人资料、商业机密或任何你没有权限访问的数据在企业环境中使用前先确认符合公司安全政策与当地数据保护法规。说到底bkcrack 最大的价值是帮你在忘了密码这种狼狈时刻保住数据而不是成为入侵他人隐私的工具。下一次再面对打不开的 ZIP 文件先深呼吸然后打开终端用已知明文攻击和它好好聊聊。祝你成功解锁找回属于你的那份记忆。想深入了解这里有几份值得收藏的文档官方文档doc/index.md实战教程含本示例完整输出example/tutorial.md限制与不支持功能说明doc/limitations.md相关论文与扩展资源doc/resources.md【免费下载链接】bkcrackCrack legacy zip encryption with Biham and Kochers known plaintext attack.项目地址: https://gitcode.com/gh_mirrors/bk/bkcrack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考