7z

壓縮檔案格式

電腦科學中,7z是一種可以使用多種壓縮演算法進行數據壓縮的檔案格式。該格式最初被7-Zip實現並採用,但是這種檔案格式是公有的,並且7-Zip軟件本身亦在GNU寬通用公眾特許條款 (GNU LGPL)協定下開放原始碼。目前LZMA軟件開發套件的最新版本為v19.00。

7z
副檔名
.7z
網路媒體型式
application/x-7z-compressed
統一類型標識org.7-zip.7-zip-archive
開發者伊戈爾·帕夫洛夫
首次釋出1999[1]
格式類型資料壓縮
免費格式?是(GNU較寬鬆公共許可證
網站7-zip 官網

7z格式的MIME類型為application/x-7z-compressed.

特色與高效能

編輯

7z格式的主要特色有:

  • 開源模組化的組件結構(允許使用任何壓縮,轉換或加密演算法)
  • 高壓縮比率(使用不同的壓縮演算法會有不同的結果)
  • 使用AES-256加密
  • 支援超大檔案(最大支援到16EB
  • Unicode檔名支援
  • 支援結實壓縮英語Solid compression,容許內類的檔案在用一個串流中壓縮,使類似的內容被有效的壓縮。
  • 壓縮檔檔壓縮
  • 支援多線程壓縮
  • 支援分割壓縮

加密

編輯

7z格式支援256位鍵鑰AES演算法加密。鍵鑰則由用戶提供的口令(密碼短語)進行SHA-256hash演算法得到。SHA-256執行218 (262144)次[2](這種技術稱為金鑰延伸),使得對口令的暴力解碼更加困難。當前基於GPU的或是自製硬件限制了這種金鑰延伸的有效性[3],所以選擇一個強口令仍然很重要。7z格式提供了選項可以加密檔名。

壓縮

編輯

該格式的開發結構允許添加標準以外的壓縮演算法。

現在支援以下演算法:

  • LZMA - 改良和最佳化演算法後的LZMA最新版本,使用馬爾可夫鏈熵資訊編碼Patricia trie
  • LZMA2 - 經過改良後的LZMA演算法,支援更多 CPU 線程。
  • PPMD - 基於Dmitry Shkarin之上的演算法2002 PPMdH(PPMII/cPPMII)並加以最佳化:PPMII是1984年的PPM壓縮演算法英語Prediction by partial matching(局部匹配思想是開創)的進階版本。
  • BCJ英語BCJ (algorithm) - 32位元x86可執行檔案轉換程式,參見LZMA。對短程jump操作和呼叫操作的目標地址進行壓縮。
  • BCJ2 - 32位元x86可執行檔案轉換程式,參見LZMA。對jump操作,呼叫操作和有條件jump操作的目標地址進行單獨壓縮。
  • Bzip2 - 標準BWT演算法。Bzip2使用(更快的)哈夫曼編碼和(更強的)熵資訊編碼。
  • DEFLATE - 標準LZ77-based演算法。

演算法的實現

編輯

下列壓縮軟件支援7z檔案格式:

參見

編輯

參考來源

編輯
  1. ^ HISTORY of the 7-Zip. [2013-07-05]. (原始內容存檔於2010-04-19). 
  2. ^ 7-zip source code. [2019-05-27]. (原始內容存檔於2019-03-22). 
  3. ^ Colin Percival. scrypt頁面存檔備份,存於互聯網檔案館). As presented in "Stronger Key Derivation via Sequential Memory-Hard Functions"頁面存檔備份,存於互聯網檔案館). presented at BSDCan'09, May 2009.

外部連結

編輯