一般来说档案压缩之后,如果能少一半就已经很厉害的,但国外有一位开发者不断在研发如何把压缩档压到最大,从最初的 42KB 解压缩档可变成 5.5GB 超大档案,现在更打造出一个 46MB ZIP,解压缩后可立即炸裂你硬盘空间的 4.5PB 炸弹压缩档 。
这小小 46MB 炸弹压缩档 ,解压后可变成 4.5PB 立即炸裂你的硬盘空间
国外这位 David Fifield 开发者长期都在研究如何制作一个最佳的 ZIP 炸弹压缩档,过去已经成功研究出 42kB → 5.5GB 以及 10MB → 281TB 这两个够跨张的档案,而最近他再次公布 46MB → 4.5PB 恐怖炸弹压缩档,这不论是谁的电脑都无法应付这容量。
下图为 ZIP 档案的结构:
你一定会有疑问,一般压缩软件不可能实现这么高的压缩比,根据 David Fifield 的说明,这是因为 ZIP 解析器所支援 DEFLATE 算法,是无法达到超过 1032 的压缩比,而他找到其他方法绕过这个限制,简单来说就是在 ZIP 档里不断堆叠档案,以便在多个文件中引用高度压缩数据的内核,而无需制作多个副本:
有了炸弹压缩档的基本架构后,David Fifield 不断的进行优化,一方面找出多少的 ZIP 档案大小,可以拥有最大压缩比,另一方面也必须考量 ZIP 格式的限制。
早些时候由于 ZIP 格式的限制,让他在扩大档案方面遇到障碍,无论如何巧妙压缩,依旧无法超过 281TB 输出。而当他使用 ZIP64 格式后,这问题就突破了,这格式可让中央目录标头从原本的 46bytes 增加到 58bytes,本地目录标头也从 30bytes 提升到 50 bytes,最终就打造出这个 46MB 的炸弹压缩档。
不过 ZIP64 的相容性比较差:
David Fifield 在这篇文章中有详细说明每个研究细节,有兴趣了解更多的可点我查看,而他也有提供档案下载,有需要的人使用前记得先想想。