差友们,听说过ZIP 炸弹吗?
一个很小很小的,几十KB 的压缩过后的文件,解压以后有几百万GB ,好像炸弹一样。
在继续介绍它之前,差评君想先问问各位都用过哪些压缩软件。。。
WinRAR ?
或者2345 好压?
还是开源的7 - Zip ?
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
其实压缩软件虽然五花八门,但目的都很单纯:
把文件占用空间缩小。
不过差评君上面提到的压缩软件,又不单纯是缩小空间。
JPG 图片, MP3 音乐格式也起到了压缩作用。
但是JPG, MP3 们执行的是有损压缩。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
一旦个文件被有损压缩的时候,会损失一部分数据。
损失的代价就是,你无法从被压缩的文件还原出压缩前的文件。
图片,音乐等多媒体在有的时候考虑可用性和传播性,对这样的结果是可以接受的。
但对许多通用数据来说,往往需要的是无损压缩,比如.zip 。
对于无损压缩来说,算法非常重要,不同的算法能实现的压缩率和速度有很大差别。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
如上图所示,主流的算法一般在30% - 40% 。
而文章一开始介绍的ZIP 炸弹,是一个名为42.zip 的文件。
它的初始大小是42KB , 解压密码是42 。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
解压之后的大小,足足有4.5 PB 。
嗯。。。就是这么嚣张。
解压这个42.zip 以后会出现16 个压缩包,每个压缩包又包含16 个,如此循环5 次,最后得到16 的5 次方个文件,也就是1048576 个。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
这一百多万个最终文件,每个大小为4.3 GB 。
因此整个解压过程结束以后,会得到1048576 * 4.6 GB = 4508876.8 GB
也就是4508876.8 ÷ 1024 ÷ 1024 = 4.5 PB
还有比它更嚣张的。
一个叫做droste.zip 的大小为28 KB 的文件,一旦被打开了以后,就会无限解压缩生成一份同样的文件,直到永远。
这个文件名灵感应该取自德罗斯特效应( Droste Effect ),是指一张图片的部分与整张图片相同,无限循环。。。如下图↓
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
这个名字源自一家叫德罗斯特的可可粉厂商做的商品包装。。。
注意女仆手上拿着的产品图
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
咳咳。。。扯远了。
总而言之,这个droste.zip 的核心原理就是输出结果为自身。
举个例子,制作者大概做了这么一件事:
在引号里重复这句话“ 在引号里重复这句话”
然后解压缩之后,硬盘就。。。 BOOM !
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
当然。。。也有剑走偏锋思路不同的。
有一段名为《 彗星撞地球》 的影片,也展现了神奇的压缩比率。
这段3D 影片如果直接放出来要15 G 左右,效果。。。放在它出生的年代2000 年还真不差。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
这个压缩过的大小只有64 KB, 压缩了25 万倍!
实现的原理其实不算通常意义上的压缩。
而是制作组Warez 做了一个64KB 的可执行EXE 文件,运行的时候会调用显卡,CPU 及内存等等及时渲染动画。
打个比方,动画就好比连环画,传统影片是画好的一册,而这个《 彗星撞地球》 则是看的时候现场一幅幅画。
差评君用录屏软件录了7 分钟都要2.27 G 。( 当然,这和现代显示屏分辨率比较高有关系)
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
那么问题来了。。。
一个文件的压缩率有极限吗?
有,可以由信息学之父克劳德·香农提出的信息熵函数算出来。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
不过42.zip 也好,droste.zip 也好,不适合套用香农提出的极限。
因为这两个文件为了达到惊人的压缩比,有大量刻意重复的数据,这种重复数据在压缩的时候是可以被丢弃的,没啥实质性内容的信息。
那么。。。
如果动画还有点传播意义, 42.zip 和droste. zip 还有啥意义呢?
这儿就要提就是ZIP 炸弹之所以被称作“ 炸弹” 的真正原因了。。。
除了会“ 爆炸” , 这玩意儿其实是拿来攻击别人的。
一个42KB的文件,解压完其实是个4.5PB的“炸弹”……
某些病毒制作者利用杀毒软件会扫描压缩文件内部的特性,会把ZIP 炸弹连带病毒一起发到目标电脑上。
而ZIP 炸弹表面上看起来很小,易于传输,但实际上扫描起来非常花时间。
趁着杀毒软件忙着扫描4.5 PB 的数据,被占用时,病毒软件就可以趁虚而入了~
差评君昨天说了啥来着。。。
干黑产的,角度刁钻得让人折腰。
不过现在很多杀毒软件已经有办法避开这种zip 炸弹的佯攻了,这个话题渐渐地抛开了黑产。
一直以来压缩算法是算法研究里津津乐道的话题, Huffman 树, LZW 字典等等。。。
用程序解决信息问题的姿势,仔细一琢磨也挺有意思的不是?
图片来源:
BetaNews
tylerbrownblog
Tom’s Hardware
steemit
参考资料:
Quora 问题《 What is the most compressed file ever? 》
知乎问题《 世界上最大的文件压缩率是多少? 》中,用户@何先森饭扫光, @罗翔的回答。
维基百科词条“ 自产生程序”
维基百科词条“ zip bomb ”
相关:
钱婆控告制作人案再有进展:水果姐否认遭人强奸凯蒂·佩里据国外媒体报道,歌手“钱婆”Kesha和伯乐制作人Dr Luke的官司正打的激烈,而在本周最新披露的法庭证词文件中,“水果姐”凯蒂·佩里(Katy Perry)作为证人否认了自己曾被Dr.Luke强奸的传言。这起案..
甄子丹晒照庆祝结婚十五周年 汪诗诗红唇性感美艳甄子丹、汪诗诗30日,甄子丹晒出与太太汪诗诗的合照,庆祝结婚十五周年。并称道:“从拍戏回家几天和甄太过一个极重要的日子!八月三十号,我们结婚十五周年!”照片中,甄子丹与太太汪诗诗亲密依偎,汪诗诗低胸装..