Phần mở rộng tên file | .7z |
---|---|
Kiểu phương tiện | application/x-7z-compressed |
Mã định danh loại thống nhất (UTI) | org.7-zip.7-zip-archive |
Magic number | '7', 'z', 0xBC, 0xAF, 0x27, 0x1C |
Phát triển bởi | Igor Pavlov[1] |
Phát hành lần đầu | 1999[2] |
Kiểu định dạng | Nén dữ liệu |
Định dạng mở? | Có: GNU Lesser General Public License / Phạm vi công cộng |
Website | 7-zip |
7z là một định dạng nén dữ liệu có hỗ trợ một số thuật toán nén dữ liệu, mã hóa và tiền xử lý khác nhau. Định dạng 7z xuất hiện đầu tiên từ phần mềm nén dữ liệu 7-Zip. 7-Zip là một phần mềm tự do nguồn mở phát hành théo giấy phép GNU. LZMA SDK 4.62 được đưa vào Phạm vi công cộng tháng 12 năm 2008. Phiên bản ổn định mới nhất của 7-Zip và LZMA SDK là phiên bản 18.05.[1]
Đặc tả định dạng file 7z được phân phối với mã nguồn của 7-Zip. Thông số kỹ thuật có thể được tìm thấy ở định dạng văn bản thuần túy trong thư mục con 'doc' của phân phối mã nguồn. Kiểu MIME của 7z là application/x-7z-compressed
.
Định dạng 7z cung cấp các tính năng chính:
Kiến trúc mở của định dạng cho phép các phương thức nén bổ sung trong tương lai được thêm vào tiêu chuẩn.
Các phương pháp nén sau hiện đang được sử dụng:
Một bộ công cụ nén lại được gọi là AdvanceCOMP chứa một bản sao của bộ mã hóa DEFLATE từ triển khai 7-Zip; những tiện ích này thường có thể được sử dụng để nén thêm kích thước của các file gzip, ZIP, PNG hoặc MNG hiện có.
The LZMA SDK đi kèm với bộ tiền xử lý BCJ và BCJ2, để các giai đoạn sau có thể đạt được độ nén lớn hơn: với các vi xử lý x86, ARM, PowerPC (PPC), IA-64 Itanium, và ARM Thumb, mục tiêu nhảy được 'bình thường hóa' [4] trước khi nén bằng cách thay đổi vị trí tương đối thành giá trị tuyệt đối. Đối với x86, điều này có nghĩa là các bước nhảy gần, các lời gọi và các bước nhảy có điều kiện (nhưng không phải là các bước nhảy ngắn và các bước nhảy có điều kiện) được chuyển đổi từ ngôn ngữ máy kiểu "nhảy 1655 bytes ngược" sang kiểu "nhảy đến địa chỉ 5554"; tất cả các bước nhảy đến 5554, có lẽ là một chương trình con phổ biến, do đó được mã hóa giống hệt nhau, làm cho chúng có thể nén hơn.
Công nghệ tiền xử lý thực thi tương tự được bao gồm trong phần mềm khác; trình nén RAR có tính năng nén dịch chuyển cho các file thực thi x86 32 bit và các tệp thực thi IA-64 và trình nén file thực thi thời gian chạy UPX bao gồm hỗ trợ làm việc với các giá trị 16 bit trong các file nhị phân DOS.
Định dạng 7z hỗ trợ mã hóa bằng thuật toán AES với khóa 256-bit. Khóa được tạo từ cụm mật khẩu do người dùng cung cấp bằng thuật toán dựa trên hàm băm SHA-256. SHA-256được thực thi 218 (262144) lần,[5] điều này gây ra sự chậm trễ đáng kể trên các PC yếu trước khi bắt đầu nén hoặc trích xuất. Kỹ thuật này được gọi là kéo dài khóa và được sử dụng để làm cho việc tìm kiếm cụm từ mật khẩu trở nên khó khăn hơn. Các cuộc tấn công phần cứng tùy chỉnh và dựa trên GPU hiện tại đã hạn chế tính hiệu quả của phương pháp kéo dài khóa cụ thể này,[6] do đó, điều quan trọng là phải chọn mật khẩu mạnh. Định dạng 7z cung cấp tùy chọn mã hóa tên file của kho lưu trữ 7z.
Định dạng 7z không lưu trữ quyền của hệ thống file (như quyền của chủ sở hữu/nhóm UNIX hay NTFS ACLs), và do đó có thể không phù hợp cho mục đích sao lưu/lưu trữ. Một cách giải quyết trên các hệ thống tương tự UNIX cho việc này là chuyển đổi dữ liệu thành file tar trước khi nén 7z. Nhưng điều đáng chú ý là GNU tar (phổ biến trong nhiều môi trường UNIX) cũng có thể nén bằng thuật toán LZMA, mà không cần sử dụng 7z và trong trường hợp này,[7] phần mở rộng file được đề xuất cho kho lưu trữ là ".tar.lzma" (hay chỉ là ".tlz"), chứ không phải ".tar.7z". Mặt khác, điều quan trọng cần lưu ý là tar không lưu mã hóa hệ thống file, điều đó có nghĩa là tên file được nén tar có thể không đọc được nếu được giải nén trên một máy tính khác. Cũng có thể sử dụng LZMA2 bằng cách chạy nó thông qua công cụ xz. Các phiên bản gần đây của GNU tar hỗ trợ chuyển đổi -J
, chạy TAR thông qua XZ. Phần mở rộng file là ".tar.xz" hoặc ".txz". Phương pháp nén này đã được áp dụng với nhiều bản phân phối cho đóng gói, như Arch, Debian (deb), Fedora (rpm) và Slackware.
Định dạng 7z không cho phép trích xuất một số "file bị hỏng"—(ví dụ) nếu một file có phân đoạn đầu tiên của một loạt các file 7z, 7z không thể bắt đầu các file trong kho lưu trữ, nó phải đợi cho đến khi tất cả phân khúc được tải xuống. Định dạng 7z cũng thiếu các bản ghi phục hồi, khiến nó dễ bị suy hao dữ liệu. Bằng cách so sánh, các file zip cũng thiếu tính năng khôi phục. Ngược lại, định dạng rar độc quyền cho phép phục hồi cũng như trích xuất các file bị hỏng và kéo dài file.
Compared to LZMA1, LZMA2 adds support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion when trying to compress uncompressible data), possibility to change lc/lp/pb in the middle of encoding, and some other internal improvements.Quản lý CS1: địa điểm (liên kết)
Compared to LZMA1, LZMA2 adds support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion when trying to compress uncompressible data), possibility to change lc/lp/pb in the middle of encoding, and some other internal improvements.Quản lý CS1: địa điểm (liên kết)