ZipCrypto 为什么几秒被爆破,AES-256 才是真加密

· 约 4 分钟 🔐 加密 ZIP

把表格改个密码塞进 ZIP 发过去,感觉很安全?如果是 ZipCrypto,打开可能只要几秒。这个 1989 年的算法在今天的算力下形同虚设。

ZIP 加密的两个算法

ZIP 格式内部支持两种加密:

算法诞生状态
ZipCrypto(Traditional)1989已被完全攻破,不要用
AES-2562002(PKWARE SES)当前标准,安全可信

同一个 .zip 扩展名,两个完全不同的加密强度——ZIP 文件头里的一个 flag bit 决定用哪个。

为什么 ZipCrypto 不安全

算法本身有缺陷

ZipCrypto 用 3 个 32 位寄存器做流加密,密钥调度极其简单。已知明文攻击下,知道明文前 12 字节(header 部分)就能完全恢复内部状态,接着解出全部数据。

已知明文攻击的威胁

攻击者只需要压缩包内任意一个文件的一小段明文。现实中极易获得:

  • 压缩包里有一张 JPEG,JPEG 开头是固定的 FF D8 FF
  • 压缩包里有 PDF,开头永远是 %PDF-
  • 压缩包里有 Excel,开头是 ZIP 魔数 PK\x03\x04(xlsx 本身就是 ZIP)
  • 压缩包里有你之前发给对方的文件,对方本就有明文

一个 Windows 工具 bkcrack 能在几秒到几小时内(看明文长度)完全破 ZipCrypto,不需要暴力枚举密码——直接解密数据。

密码长度也救不了

就算你的密码是 32 位随机字符——ZipCrypto 的已知明文攻击不是爆破密码,而是直接利用算法缺陷恢复密钥流。密码再长也没用。

为什么 AES-256 安全

AES-256 是当前密码学界默认的强加密算法:

  • 密钥空间 2^256,穷举不可行
  • 没有已知实用攻击
  • 美国政府 TOP SECRET 级别加密标准

在 ZIP 里 AES-256 实现是 WinZip 于 2002 年推出的扩展(AE-2 格式),PKWARE 在 APPNOTE 里收录。主流工具都支持:7-Zip、WinRAR、Bandizip、The Unarchiver 等。

强密码(16 位随机,含大小写数字符号)+ AES-256 的 ZIP 在可预见的未来都打不开。

生成时怎么选

命令行工具的默认值不同:

工具默认算法
zip -e(macOS/Linux 原生)ZipCrypto ❌
7z a -pAES-256 ✓
WinRARZipCrypto(需手动勾 AES)
7-Zip GUIAES-256(ZIP 格式选 AES-256)
BandizipAES-256
Windows 资源管理器不支持密码

记住zip -e 命令看起来是加密了,实际上是 ZipCrypto——生产环境别用。

验证一个 ZIP 的加密类型

7z l -slt 查看细节:

$ 7z l -slt secret.zip | grep Method
Method = ZipCrypto          ← 不安全

Method = AES-256 Deflate     ← 安全

在 Windows 下 PeaZip、Bandizip 等工具详情面板也能看到。

打开兼容性的权衡

AES-256 ZIP 的最大问题:不是所有解压工具都支持

工具AES-256 支持
7-Zip(全平台)
WinRAR
Bandizip
Windows 资源管理器(10/11)✗(只能看到文件列表不能解)
macOS 归档实用工具✗(需安装 The Unarchiver 或 Keka)
iOS / Android 系统部分支持

结论:发给技术用户随便发;发给普通同事,附一句”用 7-Zip 打开”。或者干脆用 7z 格式——它加密方案和兼容性都更一致。

文件名也要加密吗

默认 ZIP 加密只加密内容,文件名和目录结构明文。这暴露信息:

└── 财务报告/
    ├── 2026Q1-营收.xlsx       ← 文件名可见
    ├── 员工工资表.xlsx
    └── 合同-张三.pdf

即使打不开也能看到有什么。要隐藏文件名:

  • 7-Zip:选 7z 格式,勾”加密文件名”
  • RAR:勾”加密文件名”
  • ZIP:原生 ZIP 不支持加密头,少数工具用扩展实现,兼容性差

敏感场景(法务、财务、人事)推荐直接用加密 7z 或 RAR,别用 ZIP。

密码怎么传

密码和文件必须分不同渠道

  • 邮件发文件、短信/IM 发密码
  • IM 发文件、电话口述密码
  • 云盘分享、密码贴评论区之外的地方

同一封邮件带密码,攻击者拿到邮件等于文件+密码一起拿到——加密白做了。

ZIP 密码强度建议

  • 对抗爆破:12 位以上随机(大小写数字符号),熵 70+ 位
  • 常见弱密码:公司名+年份、生日、123456password——字典攻击几秒破
  • 助记词方案correct-horse-battery-staple-042 好记又安全
  • 一次一密:每次传文件换密码,密码管理器生成+存档

快速创建加密 ZIP

选文件上传,设置密码(建议 12 位以上随机),算法选 AES-256——浏览器本地加密打包,文件不上传服务器。生成的 ZIP 在 7-Zip / WinRAR 等支持 AES 的解压工具里都能打开。

❓ 常见问题

Windows 自带的压缩能建加密 ZIP 吗?

Windows 10/11 资源管理器的"发送到压缩文件夹"不支持密码。要加密必须用第三方工具(7-Zip、WinRAR)或专门的加密 ZIP 工具。macOS 的 zip -e 命令行也能加密,但默认用的是 ZipCrypto,不够安全——想要 AES-256 必须明确指定。

加密 ZIP 能防止文件名被看到吗?

默认不能。标准 ZIP 加密只加密文件内容,文件名、目录结构、文件大小都以明文存储。7-Zip 提供"加密文件名"选项,WinRAR 的 RAR 格式也能加密头部——但这会让文件变成完全不可识别的 ZIP(打开时需要密码才能看内容)。

ZIP 密码忘了能找回吗?

ZipCrypto 弱密码几分钟内 GPU 爆破;AES-256 强密码(12 位以上随机)实际不可能在合理时间内破。"ZIP 密码恢复软件"对 AES-256 基本只能跑字典攻击——弱密码有救,强密码没救。结论:强密码 ZIP 不做备份等于丢了文件。

压缩包邮件传输怕被劫持,加密 ZIP 够吗?

分威胁等级。日常防"邮件被误发"或"内部合规",AES-256 够用。高敏感(财报、客户数据)建议用 PGP 或走专门传输通道(安全邮件网关、私有云盘加密链接)。密码必须另一个渠道传——密码和文件同一邮件发等于裸奔。

🔐 打开 加密 ZIP 密码保护打包·AES-256/ZipCrypto·防泄密分享·本地处理不上传