三種模式,一次決定
Lightning 追求速度,Balanced 取中間,Compact 追求容量。面板直接告訴你哪個最快、哪個最小,而不是藏在 1 到 9 的某個數字後面。
本頁尚未翻譯成繁體中文,因此以英文顯示。軟體本身已完整翻譯為繁體中文。
功能
這裡寫的都是真正做好、測試過並且正在運作的東西。還沒做完的,會在本頁直接點名,而不是含糊帶過。
Lightning 追求速度,Balanced 取中間,Compact 追求容量。面板直接告訴你哪個最快、哪個最小,而不是藏在 1 到 9 的某個數字後面。
比對搜尋器、正規 Huffman 階段與兩層解碼表 —— 全部是本專案自己的程式碼。程式裡沒有連結任何第三方壓縮函式庫。
資料區塊會在你允許的處理器數量上平行壓縮,並受你在設定裡指定的記憶體上限約束。上限調小仍然跑得完,只是重疊得少一些。
同一份文件的多個修訂版、共用同一套結構的匯出檔、同一格式的記錄檔:為它們建立共用字典後,實測容量只有同一批檔案不用字典時的 16.7%。預設關閉,因為在內容混雜的資料夾裡它毫無收穫。
.jab 是原生容器:寫入最快,帶逐區塊校驗,也是這三種裡唯一能在此攜帶密碼的格式。.zip 與 .7z 則依通用方式寫出,任何其他工具都能毫無阻礙地開啟。
ZIP 支援 store 與 deflate;7z 支援 LZMA2 資料夾,讀取時包含 x86 分支過濾器;tar 支援 ustar 以及 GNU 長檔名。
這裡寫出的 .zip 沒有 AES、沒有延伸時間戳記,也沒有 Unix 權限。.7z 則是每個實體區塊一個 LZMA2 資料夾,沒有逐檔過濾器。想要更高壓縮率、逐區塊 SHA-256 或密碼保護,答案就是 .jab。
每個區塊一筆記錄,96 位元隨機值與 128 位元驗證標籤,全部來自作業系統本身的實作。本專案不自創任何密碼學演算法。
清單(檔名、大小、時間戳記、屬性)是一筆加密記錄;存放逐區塊 SHA-256 與 CRC-32C 的區塊表也是一筆加密記錄。
對空白明文計算的驗證標籤,讓讀取端只需一次 PBKDF2 推導就知道密碼不對,而不必先解完整個壓縮檔。
在 .jab 內部保留 1–30% 的備援資料,損毀的區塊就能被重建,而不只是被回報出來。它必須在損毀發生之前加入,而且只有 .jab 能攜帶。
每個區塊都帶 CRC-32C;逐區塊 SHA-256 預設開啟,除非你把它關掉。前者告訴你某個區塊出錯了,後者讓「默默漏判」幾乎不可能發生。
完整檢查會讀取檔頭、檔尾、區塊表與清單確認一致性,接著解碼每一個區塊。只解碼則跳過結構檢查那一輪。兩者都不會寫出任何檔案。
這兩種檢查都無法告訴你壓縮檔未被竄改:能改資料的人同樣能重算這兩個值。只有帶密碼的壓縮檔才能回答這個問題。
壓縮檔先寫入 .partial 檔,完整之後才更名,因此中途被中斷的執行絕不會留下看起來已經完成的檔案。
依 10、25、100 或 700 MB,或你輸入的任意大小,在壓縮檔旁邊寫出 .001、.002…… 單獨一個分割檔無法讀取;合併時會先檢查每一個分割檔再寫入。
在壓縮檔內部以 SHA-256 比對整個檔案,因此只有完全相同的副本才會被列出,並告訴你刪掉多餘副本能收回多少空間。空檔案會被略過。
檢查某個資料夾是否仍與當初封存的內容相符。兩邊都會算雜湊,所以即使改動後大小與時間戳記都沒變,照樣抓得出來。
掃描只回報哪些分片損毀,不寫入任何東西。修復則借助修復記錄,只重寫確實出錯的那些部分。
沒有網頁檢視,也沒有框架:介面由 Direct2D 與 DirectWrite 直接繪製,所以它開啟即用,工作執行時視窗依然順手。
開啟一個壓縮檔,對內容排序與篩選,並可直接預覽文字、圖片、PDF(單頁)與音訊,不必先解壓縮。
工作依加入順序逐一執行。等待中的工作可以調整順序或移除,執行中的可以暫停,耗時長的工作可以轉到背景,而不必卡住整個視窗。
先依名稱找到壓縮檔,再按 Enter 搜尋它們內部的內容。它會據實說明讀取了幾個、有幾個已不存在、有幾個打不開。
用於壓縮、解壓縮與測試的右鍵選單項目,從設定畫面加入,也從同一處移除。
介面中的每一句文字都翻譯成了 28 種語言,並且依各自語言的複數規則處理,而不是把一條英文規則套用到所有地方。
同一套引擎,可以寫進指令碼。建立、解壓縮、列出、測試與驗證,執行緒數、記憶體上限與完整性層級都是參數。密碼絕不接受以命令列參數傳入 —— 執行中行程的完整命令列,同一帳戶下的其他行程讀得到 —— 所以它從 stdin 讀取,或在關閉回顯的情況下提示輸入。
使用指南> jab c .\project -o project.jab --mode lightning
scanning 412 files, 268 MB
writing project.jab
output 96.4 MB (36.0% of input)
elapsed 1.84 s — 145.7 MB/s
> jab t project.jab
412 entries · 268 MB checked · structure and every block
ok
> jab x project.jab -o .\restored --overwrite fail
412 files written, 0 skipped
elapsed 0.94 s
沒有安裝程式,也沒有程式碼簽章:1.0 是免安裝版本,Windows 會對未簽章的程式提出警告。
沒有由右至左的版面,這正是阿拉伯文與希伯來文已翻譯卻暫不發布的原因。
增量壓縮檔還無法記錄刪除動作,金鑰檔也尚未實作。
多執行緒的擴充性仍不如 RAR,而且 RAR5 Normal 依然壓得更小。