一个42KB的文件,解压完其实是个4.5PB的“炸弹”
你聽說過 ZIP 炸彈嗎?
一個很小很小的,幾十 KB 的壓縮過后的文件,解壓以后有幾百萬 GB ,好像炸彈一樣。
在繼續介紹它之前,差評君想先問問各位都用過哪些壓縮軟件。。。
WinRAR ?
或者 2345 好壓?
還是開源的 7 - Zip ?
其實壓縮軟件雖然五花八門,但目的都很單純:
把文件占用空間縮小。
不過差評君上面提到的壓縮軟件,又不單純是縮小空間。
JPG 圖片 , MP3 音樂格式也起到了壓縮作用。
但是 JPG, MP3 們執行的是有損壓縮。
一旦個文件被有損壓縮的時候,會損失一部分數據。
損失的代價就是,你無法從被壓縮的文件還原出壓縮前的文件。
圖片,音樂等多媒體在有的時候考慮可用性和傳播性,對這樣的結果是可以接受的。
但對許多通用數據來說,往往需要的是無損壓縮,比如 .zip 。
對于無損壓縮來說,算法非常重要,不同的算法能實現的壓縮率和速度有很大差別。
如上圖所示,主流的算法一般在 30% - 40% 。
而文章一開始介紹的 ZIP 炸彈,是一個名為 42.zip 的文件。
它的初始大小是 42KB , 解壓密碼是 42 。
解壓之后的大小,足足有?4.5 PB 。
嗯。。。就是這么囂張。
解壓這個 42.zip 以后會出現 16 個壓縮包,每個壓縮包又包含 16 個,如此循環 5 次,最后得到 16 的 5 次方個文件,也就是 1048576 個。
這一百多萬個最終文件,每個大小為 4.3 GB 。
因此整個解壓過程結束以后,會得到 1048576 * 4.6 GB = 4508876.8 GB
也就是 4508876.8 ÷ 1024 ÷ 1024 =?4.5 PB
還有比它更囂張的。
一個叫做 droste.zip 的大小為 28 KB 的文件,一旦被打開了以后,就會無限解壓縮生成一份同樣的文件,直到永遠。
這個文件名靈感應該取自德羅斯特效應?( Droste Effect ),是指一張圖片的部分與整張圖片相同,無限循環。。。如下圖↓
這個名字源自一家叫德羅斯特的可可粉廠商做的商品包裝。。。
注意女仆手上拿著的產品圖
咳咳。。。扯遠了。
總而言之,這個 droste.zip 的核心原理就是輸出結果為自身。
舉個例子,制作者大概做了這么一件事:
在引號里重復這句話 “ 在引號里重復這句話 ”?
然后解壓縮之后,硬盤就。。。 BOOM !
當然。。。也有劍走偏鋒思路不同的。
有一段名為 《 彗星撞地球 》 的影片,也展現了神奇的壓縮比率。
這段 3D 影片如果直接放出來要 15 G 左右,效果。。。放在它出生的年代 2000 年還真不差。
這個壓縮過的大小只有 64 KB, 壓縮了 25 萬倍 !
實現的原理其實不算通常意義上的壓縮。
而是制作組 Warez 做了一個 64KB 的可執行 EXE 文件,運行的時候會調用顯卡,CPU 及內存等等及時渲染動畫。
打個比方,動畫就好比連環畫,傳統影片是畫好的一冊,而這個 《 彗星撞地球 》 則是看的時候現場一幅幅畫。
錄屏軟件錄了 7 分鐘都要 2.27 G 。( 當然,這和現代顯示屏分辨率比較高有關系 )
那么問題來了。。。
一個文件的壓縮率有極限嗎?
有,可以由信息學之父克勞德·香農提出的信息熵函數算出來。
不過 42.zip 也好,droste.zip 也好,不適合套用香農提出的極限。
因為這兩個文件為了達到驚人的壓縮比,有大量刻意重復的數據,這種重復數據在壓縮的時候是可以被丟棄的,沒啥實質性內容的信息。
那么。。。
如果動畫還有點傳播意義, 42.zip 和 droste. zip 還有啥意義呢?
這兒就要提就是 ZIP 炸彈之所以被稱作 “ 炸彈 ” 的真正原因了。。。
除了會 “ 爆炸 ” ,?這玩意兒其實是拿來攻擊別人的。
某些病毒制作者利用殺毒軟件會掃描壓縮文件內部的特性,會把 ZIP 炸彈連帶病毒一起發到目標電腦上。
而 ZIP 炸彈表面上看起來很小,易于傳輸,但實際上掃描起來非常花時間。
趁著殺毒軟件忙著掃描 4.5 PB 的數據,被占用時,病毒軟件就可以趁虛而入了 ~
干黑產的,角度刁鉆得讓人折腰。
不過現在很多殺毒軟件已經有辦法避開這種 zip 炸彈的佯攻了,這個話題漸漸地拋開了黑產。
一直以來壓縮算法是算法研究里津津樂道的話題, Huffman 樹, LZW 字典等等。。。
用程序解決信息問題的姿勢,仔細一琢磨也挺有意思的不是?
∑編輯?|?Gemini
來源 | 差評
更多精彩:
? ?哈爾莫斯:怎樣做數學研究
? ?扎克伯格2017年哈佛大學畢業演講
? ?線性代數在組合數學中的應用
? ?你見過真的菲利普曲線嗎?
? ?支持向量機(SVM)的故事是這樣子的
? ?深度神經網絡中的數學,對你來說會不會太難?
? ?編程需要知道多少數學知識?
? ?陳省身——什么是幾何學
? ?模式識別研究的回顧與展望
? ?曲面論
? ?自然底數e的意義是什么?
? ?如何向5歲小孩解釋什么是支持向量機(SVM)?
? ?華裔天才數學家陶哲軒自述
? ?代數,分析,幾何與拓撲,現代數學的三大方法論
算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、算法、計算機、編程等相關領域,經采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結
以上是生活随笔為你收集整理的一个42KB的文件,解压完其实是个4.5PB的“炸弹”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 麻省理工学院(MIT)研究生学习指导——
- 下一篇: 加班累到住院,到30岁年薪百万:你所谓的