Tệp nén ZIP (.zip)

PKWARE Tiêu chuẩn

ZIP là một định dạng tệp lưu trữ hỗ trợ nén dữ liệu không mất mát, cho phép đóng gói nhiều tệp và thư mục vào một trình chứa duy nhất có thể vận chuyển.

Chuyển đổi ZIP sang TAR

Trình chuyển đổi từ ZIP sang TAR miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Nén ZIP trực tuyến

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp ZIP bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Hoặc dán Ctrl+V
Cam kết bảo vệ quyền riêng tư, không truyền dữ liệu qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký ở đầu tệp (mẫu byte nhận diện)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp ZIP bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

50 4B 03 04

BIỂU DIỄN ASCII: PK..

Tiêu chuẩn hóa: PKWARE APPNOTE / ISO/IEC 21320-1

Thông số kỹ thuật

Kiến trúc ContainerTrình chứa tệp nén kết hợp nhiều tệp với các tiêu đề nén riêng lẻ
NénDeflate (Phương pháp 8), Store (Phương pháp 0), BZIP2, LZMA, Zstandard
Thứ tự byteThứ tự byte nhỏ (Little-Endian) được dùng cho tất cả tiêu đề chữ ký, giá trị kiểm tra CRC32 và kích thước.
Không gian màuKhông áp dụng (trình chứa nhị phân cho các tệp tùy ý)
Kênh & Cấu trúcCấu trúc thư mục phân cấp, luồng siêu dữ liệu và mã tổng kiểm tệp
Kích thước tối đaZIP tiêu chuẩn: 4 GB / 65.535 tệp; ZIP64: 16 Exabyte / 18 tỷ tỷ tệp
Độ trong suốtKhông áp dụng
Truyền phát & Tăng dầnThư mục trung tâm ở cuối tệp cho phép liệt kê tức thì mà không cần giải nén

Ma trận so sánh kỹ thuật: ZIP so với các đối thủ

Thuộc tính kỹ thuậtZIP (Hiện tại)7-Zip (7z)TAR.GZRAR
Tương thích với hệ điều hànhHỗ trợ ZIP tích hợp tùy thuộc vào hệ điều hành và phiên bản; nhiều hệ thống có công cụ riêng.Yêu cầu 7-Zip hoặc ứng dụng của bên thứ baGốc trên Linux/macOS; yêu cầu công cụ trong WindowsYêu cầu WinRAR hoặc thư viện unrar
Hiệu quả nénTrung bình (Thuật toán Deflate)Rất cao (Thuật toán LZMA/LZMA2)Trung bình (Deflate trên tar)Cao (Nén độc quyền của RAR)
Nén rắnKhông (mỗi tệp được nén độc lập)Có (các khối nén rắn cải thiện khả năng nén văn bản trùng lặp)Có (nén toàn bộ gói tar)Có (chế độ nén rắn tùy chọn)
Trích xuất có chọn lọcTrích xuất nhanh tức thì bất kỳ tệp đơn lẻ nàoYêu cầu giải nén các khối nén rắn trước đóPhải giải nén luồng đến tệp đíchNhanh nếu không dùng chế độ nén rắn

Các dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã hex

Tiện ích lưu trữ báo lỗi 'End-of-central-directory signature not found' hoặc cho biết tệp lưu trữ không hợp lệ.

Nguyên nhân gốc rễ: Tải xuống bị cắt xén thiếu các byte cuối cùng chứa bản ghi Thư mục trung tâm.

Khắc phục: Sử dụng 'zip -FF damaged.zip --out fixed.zip' để quét các tiêu đề tệp cục bộ từ đầu và tái tạo lại một thư mục trung tâm mới.

Phân tích bảo mật và các đường tấn công nhằm vào bộ phân tích cú pháp

Bảo mật ZIP tập trung vào các lỗ hổng duyệt đường dẫn Zip Slip và bom giải nén.

Các véc-tơ tấn công đã biết

  • Zip Slip: Tên tệp độc hại chứa chuỗi '../../' để thoát khỏi thư mục đích khi duyệt đường dẫn.
  • Zip Bomb: Tệp lưu trữ nhỏ giải nén thành hàng petabyte dữ liệu toàn số 0 (ví dụ: 42.zip 42 KB mở rộng thành 4,5 PB), làm sập máy chủ do cạn kiệt đĩa và bộ nhớ.
  • Các lỗ hổng mã hóa ZipCrypto cũ cho phép khôi phục khóa chỉ từ bản mã trong vài phút.

Biện pháp phòng thủ tốt nhất: Luôn làm sạch đường dẫn tệp khi giải nén để đảm bảo chúng nằm trong thư mục đích. Đặt giới hạn nghiêm ngặt về byte tối đa và số lượng tệp khi giải nén các tệp tải lên không đáng tin cậy. Sử dụng mã hóa WinZip AES-256.

Nguồn gốc lịch sử và các cột mốc

2015ISO/IEC 21320-1 chính thức hóa ZIP làm trình chứa cơ sở cho các tệp EPUB, DOCX và JAR.
1998Microsoft Windows tích hợp tính năng giải nén thư mục ZIP gốc trong Windows 98 Plus!.
1989Được tạo bởi Phil Katz cho PKZIP sau một vụ kiện pháp lý với SEA về ARC.

Ưu điểm & Lợi ích chính

  • Được hỗ trợ phổ biến bởi mọi hệ điều hành trên thế giới mà không cần cài đặt phần mềm của bên thứ ba.
  • Thư mục trung tâm nằm ở cuối tệp lưu trữ cho phép liệt kê tệp tức thì mà không cần giải nén.
  • Các tệp riêng lẻ có thể được trích xuất có chọn lọc mà không cần giải nén toàn bộ tệp lưu trữ.

Hạn chế & Nhược điểm kỹ thuật

  • Không lưu trữ quyền tệp UNIX hoặc liên kết tượng trưng một cách đáng tin cậy trên các nền tảng.
  • Do không hỗ trợ nén rắn, tỷ lệ nén thấp hơn 7z hoặc tar.xz khi nén tập hợp lớn gồm các tệp tương tự nhau.
  • Mã hóa ZipCrypto cũ tiêu chuẩn đã bị phá vỡ về mặt mật mã (yêu cầu AES-256).

Thông tin kỹ thuật thú vị

  • Chữ 'PK' trong tiêu chuẩn tệp ZIP viết tắt của Phil Katz, người phát minh ra PKZIP.
  • Một số định dạng phổ biến dùng vùng chứa ZIP, bao gồm APK, JAR, DOCX và EPUB.
  • Vì ZIP cho phép nối dữ liệu trước các tiêu đề tệp cục bộ hoặc sau thư mục trung tâm, đây là định dạng vùng chứa được ưa chuộng cho các tệp đa định dạng có thể đồng thời hoạt động như hình ảnh, tệp JAR hoặc tệp thực thi.

Các câu hỏi kỹ thuật thường gặp

Sự khác biệt giữa ZIP và 7Z là gì?

ZIP tương thích phổ quát với mọi hệ điều hành mà không cần cài đặt thêm phần mềm. 7Z sử dụng thuật toán LZMA/LZMA2 hiện đại với tính năng nén liên tục, đạt tỷ lệ nén cao hơn 30% - 50% nhưng yêu cầu phần mềm của bên thứ ba để mở trên các hệ thống cũ.

Tại sao việc xem nội dung của tệp ZIP lại nhanh?

ZIP lưu trữ một 'Thư mục trung tâm' ở ngay cuối tệp. Phần mềm chỉ cần đọc vài kilobyte cuối cùng để hiển thị ngay lập tức toàn bộ cây thư mục và tên tệp mà không cần giải nén bất kỳ tệp nào.

Các tệp ZIP được mã hóa có dễ bị bẻ khóa không?

Mã hóa ZIP cũ (ZipCrypto) sử dụng mật mã luồng khóa 96-bit yếu có thể bị phá vỡ trong vài phút bằng các công cụ tấn công văn bản thuần túy như bkcrack. Các tệp lưu trữ hiện đại phải sử dụng mã hóa WinZip AES-256 để đảm bảo bảo mật mật mã.