piapia123
zh

在线解压缩

文档

所有处理都在浏览器本地完成,数据不上传服务器

把 zip 拖进来,先看包里有什么(文件名、大小、是否加密),再勾选要的那些导出成文件。 全程在本机解压,文件不会上传。 这不是一句口号:这个页面没有任何上传代码,压缩包读进内存、解开、重新打包、下载,整条链路都在你的浏览器里。压缩包往往是备份、合同、密钥这类东西,它是最不该经过第三方服务器的文件类型之一。 为什么先列清单再导出。 直接解开一个几百 MB 的包然后让你自己找文件,比先看一眼清单慢得多,而且你往往只需要里面一两个文件。 「下载选中的」会重新打一个 zip,而不是逐个触发下载 —— 后者会被浏览器拦掉(多数浏览器只允许用户手势内的第一次下载,还会弹「是否允许下载多个文件」)。打出来的包用不压缩(store)方式:成员在你机器上已经是解压后的形态,再压一遍费时且收益不确定(图片、PDF、视频本来就压不动)。 ⚠️ 加密的包解不开。 目录里能看出哪些成员被加密了,但没有密码就是解不了 —— 这里如实标注,而不是给出一堆乱码。 ⚠️ 只支持 zip。 rar、7z、tar.gz 都是不同的格式,不是「zip 的变体」,需要各自的解码器。

功能

  • 先列清单:文件名、解压后大小、加密与否,一目了然
  • 全程本机解压,页面里没有任何上传代码,文件不出浏览器
  • 勾选要的文件导出;也可以全选 / 全不选
  • 「下载选中的」重新打包成一个 zip(一次下载,不被浏览器拦)
  • ⚠️ 加密的成员会在清单里标出来,而不是解出一堆乱码
  • ⚠️ 文件名做了路径穿越清理(`../../etc/passwd` 这种会被削成 `passwd`)
  • ⚠️ 解出来的内容只作为文件下载,绝不渲染进页面 —— zip 里放一段 `<script>` 是常见的攻击面
  • 支持 zip64 与 GBK 文件名的老包

使用方法

  1. 把 zip 拖到上面的框里(或点击选择)
  2. 看一眼清单:哪些文件、多大、有没有加密的
  3. 勾掉不要的,点「下载选中的」
  4. 浏览器会下载一个 zip —— 里面就是你要的那些文件

常见问题

文件会被上传到服务器吗?
不会。这个页面没有任何上传代码 —— 压缩包是用浏览器本地的文件 API 读进内存的,解压用的是浏览器自带的 `DecompressionStream`,重新打包与下载也都在本机完成。你可以断网之后再用一次:功能完全一样(这个页面甚至没有联网的代码可断)。压缩包常常是备份、合同、密钥,这类文件最不该经过别人的服务器。
为什么「下载选中的」给的是一个 zip,不是几个文件?
因为逐个触发下载会被浏览器拦掉:多数浏览器只允许用户手势内的第一次下载,之后会弹「是否允许下载多个文件」,被拦掉时你甚至不知道少了哪个。所以这里重新打成一个 zip,一次下载。新包里用的是不压缩方式 —— 成员在你的机器上已经是解压后的形态,再压一遍费时间,而图片、PDF、视频本来也压不动。这个包任何解压工具都能正常打开。
加密的包能解吗?为什么清单里能看到文件名?
解不开,但文件名能看到。 zip 的结构是「目录 + 数据」:文件名、大小这些元数据在目录里,是明文的(zip 的加密只加密成员数据,不像 7z 那样连目录一起加密),所以清单能列出来。但数据部分没有密码就是解不了 —— 这里如实标成「已加密,解不开」并禁止勾选,而不是试着解一下然后给你一堆乱码。要解开加密的包,请用支持密码的本地工具。
支持 rar / 7z / tar.gz 吗?
不支持,而且不支持的原因不是「没做」而是「做不了」。 rar 与 7z 是各自独立的格式(各有自己的压缩算法与结构),而 rar 的压缩算法还有专利限制、公开的实现也不完整。tar.gz 则是「tar 打包 + gzip 压缩」两层,得先解 gzip 再解 tar。这些都需要各自的解码器,不是「zip 的变体」。本工具只处理 zip —— 包括 zip64 与用 GBK 写文件名的老包。

相关工具