Ba chế độ, một quyết định
Lightning cho tốc độ, Balanced cho ở giữa, Compact cho kích thước. Bảng chọn nói thẳng cái nào nhanh nhất và cái nào nhỏ nhất thay vì giấu sau một con số từ 1 đến 9.
Trang này chưa được dịch sang Tiếng Việt nên đang hiển thị bằng tiếng Anh. Bản thân phần mềm thì đã dịch đầy đủ sang Tiếng Việt.
Tính năng
Những gì thực sự đã được xây, đã kiểm thử và đang chạy. Thứ gì còn dở dang thì được nêu tên ngay trên trang này chứ không nói bóng gió.
Lightning cho tốc độ, Balanced cho ở giữa, Compact cho kích thước. Bảng chọn nói thẳng cái nào nhanh nhất và cái nào nhỏ nhất thay vì giấu sau một con số từ 1 đến 9.
Bộ tìm chuỗi trùng, một tầng Huffman chuẩn tắc và bảng giải mã hai cấp — tất cả đều là mã của chính dự án này. Không có thư viện nén của bên thứ ba nào được liên kết vào phần mềm.
Các khối được nén song song trên số bộ xử lý bạn cho phép, bên trong trần bộ nhớ bạn đặt trong Cài đặt. Trần thấp hơn thì vẫn chạy xong; chỉ là ít chồng lấn hơn.
Nhiều bản sửa của một tài liệu, các bản xuất cùng một lược đồ, nhật ký cùng một định dạng: một từ điển dựng chung cho chúng đã đo được còn 16,7% kích thước so với kho lưu trữ tạo ra từ chính các tệp đó mà không có nó. Mặc định nó tắt, vì trên một thư mục hỗn hợp thì nó chẳng được gì.
.jab là định dạng gốc: ghi nhanh nhất, có mã kiểm tra từng khối, và là định dạng duy nhất trong ba cái mang được mật khẩu ở đây. .zip và .7z được ghi đúng chuẩn thông thường để mọi công cụ khác mở ra mà không phàn nàn gì.
Store và deflate cho ZIP, thư mục LZMA2 cho 7z kể cả bộ lọc nhánh x86 khi đọc, ustar với tên dài kiểu GNU cho tar.
Một tệp .zip ghi ở đây không có AES, không có dấu thời gian mở rộng và không có quyền kiểu Unix. Một tệp .7z có một thư mục LZMA2 cho mỗi khối liền và không có bộ lọc riêng cho từng tệp. Muốn nén tốt hơn, muốn SHA-256 từng khối hay muốn mật khẩu thì câu trả lời là .jab.
Mỗi khối một bản ghi, nonce 96 bit và thẻ xác thực 128 bit, lấy từ chính cài đặt của hệ điều hành. Dự án này không tự nghĩ ra thuật toán mật mã nào.
Bản kê — tên tệp, kích thước, dấu thời gian, thuộc tính — là một bản ghi mã hoá, và bảng khối chứa các giá trị SHA-256 và CRC-32C của từng khối cũng vậy.
Một thẻ xác thực trên bản rõ rỗng cho trình đọc biết mật khẩu sai chỉ sau một lần dẫn xuất PBKDF2, thay vì sau khi giải mã cả kho lưu trữ.
Dành 1–30% dữ liệu dự phòng bên trong một tệp .jab và một khối hư hỏng có thể được dựng lại chứ không chỉ được báo cáo. Nó phải được thêm vào trước khi hư hỏng xảy ra, và chỉ .jab mới mang được.
Mỗi khối đều mang một CRC-32C; SHA-256 cho từng khối thì bật sẵn trừ khi bạn tắt đi. Cái thứ nhất nói một khối bị sai, cái thứ hai làm cho khả năng bỏ sót âm thầm gần như bằng không.
Kiểm tra kỹ đọc phần đầu, phần cuối, bảng khối và bản kê xem có nhất quán không, rồi giải mã mọi khối. Chỉ giải mã thì bỏ qua lượt kiểm tra cấu trúc. Cả hai đều không ghi ra tệp nào.
Không kiểu kiểm tra nào nói được rằng kho lưu trữ chưa bị can thiệp: ai sửa được dữ liệu thì cũng tính lại được cả hai giá trị. Chỉ kho lưu trữ có mật khẩu mới trả lời được câu hỏi đó.
Kho lưu trữ được ghi vào một tệp .partial rồi mới đổi tên khi đã hoàn chỉnh, nên một lần chạy bị ngắt giữa chừng không bao giờ để lại thứ trông như đã xong.
Ghi .001, .002, … cạnh kho lưu trữ ở mức 10, 25, 100 hay 700 MB, hoặc bất kỳ kích thước nào bạn gõ vào. Từng phần riêng lẻ không đọc được; khi ghép, mọi phần đều được kiểm tra trước khi ghi.
So sánh trọn vẹn từng tệp bằng SHA-256 bên trong một kho lưu trữ nên chỉ những bản sao y hệt mới được báo, và cho biết bỏ bớt bản thừa thì thu lại được bao nhiêu dung lượng. Tệp rỗng được bỏ qua.
Kiểm tra xem một thư mục còn khớp với thứ đã lưu hay không. Cả hai bên đều được băm, nên một thay đổi giữ nguyên kích thước và dấu thời gian vẫn bị phát hiện.
Quét báo những mảnh nào bị hỏng và không ghi gì cả. Sửa chỉ ghi lại đúng những phần bị sai, dựa vào bản ghi phục hồi.
Không web view, không framework: giao diện được vẽ bằng Direct2D và DirectWrite, đó là lý do nó mở ra tức thì và vẫn mượt trong lúc một tác vụ đang chạy.
Mở một kho lưu trữ, sắp xếp và lọc nội dung của nó, và xem trước văn bản, ảnh, PDF — một trang — cùng âm thanh mà không cần giải nén trước.
Các tác vụ chạy lần lượt theo thứ tự được thêm vào. Tác vụ đang chờ có thể đổi thứ tự hoặc bỏ đi, tác vụ đang chạy có thể tạm dừng, và một tác vụ dài có thể đẩy xuống chạy nền thay vì khoá cả cửa sổ.
Tìm một kho lưu trữ theo tên, rồi nhấn Enter để tìm bên trong những kho vừa tìm thấy. Nó nói rõ đã đọc được bao nhiêu, bao nhiêu không còn và bao nhiêu không mở được.
Các mục chuột phải để nén, giải nén và kiểm tra, thêm vào từ màn hình Cài đặt và gỡ ra cũng từ chỗ đó.
Mọi chuỗi trong giao diện đều được dịch sang 28 ngôn ngữ, với quy tắc số nhiều riêng cho từng thứ tiếng chứ không áp một quy tắc tiếng Anh cho tất cả.
Vẫn là bộ máy đó, nhưng viết được kịch bản. Tạo, giải nén, liệt kê, thử và kiểm chứng, với số luồng, hạn mức bộ nhớ và mức toàn vẹn là các tham số. Mật khẩu không bao giờ được nhận qua tham số dòng lệnh — toàn bộ dòng lệnh của một tiến trình đang chạy có thể bị tiến trình khác cùng tài khoản đọc được — nên nó được đọc từ stdin hoặc hỏi trực tiếp với chế độ ẩn ký tự.
Hướng dẫn> 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
Chưa có trình cài đặt và chưa có chữ ký số: bản 1.0 là bản chạy ngay, và Windows sẽ cảnh báo về một chương trình chưa ký.
Chưa có bố cục phải-sang-trái, đó là lý do tiếng Ả Rập và tiếng Do Thái đã dịch nhưng chưa phát hành.
Kho lưu trữ gia tăng chưa ghi lại được thao tác xoá, và chưa có keyfile.
Khả năng co giãn theo số luồng vẫn kém RAR, và RAR5 Normal vẫn nén nhỏ hơn.