把表格改个密码塞进 ZIP 发过去,感觉很安全?如果你选的是 ZipCrypto,它顶多算“增加一道门槛”,不适合真正敏感的数据。ZIP 里同样叫“加密”,不同算法的强度差距非常大。
ZIP 加密的两个算法
ZIP 格式内部支持两种加密:
| 算法 | 诞生 | 状态 |
|---|---|---|
| ZipCrypto(Traditional) | 1989 | 明显过时,只适合轻量阻挡 |
| AES-256 | 2002(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) - 压缩包里有你之前发给对方的文件,对方本就有明文
公开工具已经足以演示这类攻击,而且它针对的不是“密码短不短”,而是算法本身的结构缺陷。所以 ZipCrypto 更像“防随手翻看”,不是“防有准备的攻击者”。
密码长度也救不了
就算你的密码是 32 位随机字符——ZipCrypto 的已知明文攻击不是爆破密码,而是直接利用算法缺陷恢复密钥流。密码再长也没用。
为什么 AES-256 安全
AES-256 是当前密码学界默认的强加密算法:
- 密钥空间 2^256,穷举不可行
- 没有已知实用攻击
- 美国政府 TOP SECRET 级别加密标准
在 ZIP 里常见的 AES 加密实现来自 WinZip AE 扩展。桌面端主流压缩工具一般都能处理,但系统自带归档器的支持矩阵会变,所以发给别人时最好直接注明“请用 7-Zip / WinRAR / Keka 打开”。
强密码(16 位随机,含大小写数字符号)+ AES-256 的 ZIP 在可预见的未来都打不开。
生成时怎么选
命令行工具的默认值不同:
| 工具 | 默认算法 |
|---|---|
zip -e(常见 Info-ZIP / 系统原生命令) | 通常是 ZipCrypto ❌ |
7z a -p | AES-256 ✓ |
| WinRAR | ZipCrypto(需手动勾 AES) |
| 7-Zip GUI | AES-256(ZIP 格式选 AES-256) |
| Bandizip | AES-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,含 24H2) | 不应预设支持加密压缩包 |
| macOS 归档实用工具 | 不应预设支持 AES ZIP |
| iOS / Android 系统 | 部分支持 |
结论:发给别人之前,最稳的是直接附一句“请用 7-Zip / WinRAR / Keka 打开”。如果你还需要隐藏文件名,直接改用 7z 往往更省事。
文件名也要加密吗
默认 ZIP 加密只加密内容,文件名和目录结构明文。这暴露信息:
└── 财务报告/
├── 2026Q1-营收.xlsx ← 文件名可见
├── 员工工资表.xlsx
└── 合同-张三.pdf
即使打不开也能看到有什么。要隐藏文件名:
- 7-Zip:选 7z 格式,勾”加密文件名”
- RAR:勾”加密文件名”
- ZIP:原生 ZIP 不支持加密头,少数工具用扩展实现,兼容性差
敏感场景(法务、财务、人事)推荐直接用加密 7z 或 RAR,别用 ZIP。
密码怎么传
密码和文件必须分不同渠道:
- 邮件发文件、短信/IM 发密码
- IM 发文件、电话口述密码
- 云盘分享、密码贴评论区之外的地方
同一封邮件带密码,攻击者拿到邮件等于文件+密码一起拿到——加密白做了。
ZIP 密码强度建议
- 对抗爆破:12 位以上随机(大小写数字符号),熵 70+ 位
- 常见弱密码:公司名+年份、生日、
123456、password——字典攻击几秒破 - 助记词方案:
correct-horse-battery-staple-042好记又安全 - 一次一密:每次传文件换密码,密码管理器生成+存档
快速创建加密 ZIP
选文件上传,设置密码(建议 12 位以上随机),算法选 AES-256——浏览器本地加密打包,文件不上传服务器。生成的 ZIP 在 7-Zip / WinRAR 等支持 AES 的解压工具里都能打开。