ZIP技術是一種相當簡單的分別壓縮嗎?
ZIP是一種相當簡單的分別壓縮每個文件的存檔格式。分別壓縮文件允許不必讀取另外的數據而檢索獨立的文件;理論上,這種格式允許對不同的文件使用不同的算法。不管用何種方法,對這種格式的一個告誡是對于包含很多小文件的時候,存檔會明顯的比壓縮成一個獨立的文件(在類Unix系統中一個經典的例子是普通的tar.gz存檔是由一個使用gzip壓縮的TAR存檔組成)要大。
ZIP的規(guī)約指出文件可以不經壓縮或者使用不同的壓縮算法來存儲。然而,在實際上,ZIP幾乎差不多總是在使用卡茨(Katz)的DEFLATE算法。
ZIP支持基于對稱加密系統的一個簡單的密碼,已知有嚴重的缺陷,已知明文攻擊,字典攻擊和暴力攻擊。ZIP也支持分卷壓縮。
在近來一段時間,ZIP加入了包括新的壓縮和加密方法的新特征,不過這些新特征并沒有被許多任務所支持并且沒有得到廣泛應用。
關于壓縮的如下方法是
Shrinking(方法1)
收縮(Shrinking)是LZW的微小調整的一個異體,同樣也受到LZW專利問題的影響。從來沒有明確的是這項專利是否涵蓋反收縮,不過一些開放源碼的項目(例如Info-ZIP)決定謹慎行事,在默認的構造里不包含反收縮的支持。
Reducing(方法2-5)
縮小(Reducing)包括壓縮重復字節(jié)序列的組合,然后應用一個基于概率的編碼得到結果。
Imploding(方法6)
爆聚(Imploding)包括使用一個滑動窗口壓縮重復字節(jié)序列,然后使用多重Shannon-Fano樹壓縮得到結果。
Tokenizing(方法7)
令牌化(Tokenizing)的方法數是保留的。PKWARE規(guī)約沒有為其定義一個算法。
Deflate和增強的Deflate(方法8和9)
這些方法使用眾所周知的Deflate算法。Deflate允許最大32K的窗口。增強的Deflate允許最大64K的窗口。增強版完成任務稍稍成功一些,但是并沒有被廣泛的支持。