Tệp nén ZIP (.zip)
PKWARE Tiêu chuẩnZIP 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ữ 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 04BIỂ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 Container | Trì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én | Deflate (Phương pháp 8), Store (Phương pháp 0), BZIP2, LZMA, Zstandard |
| Thứ tự byte | Thứ 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àu | Không áp dụng (trình chứa nhị phân cho các tệp tùy ý) |
| Kênh & Cấu trúc | Cấ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 đa | ZIP tiêu chuẩn: 4 GB / 65.535 tệp; ZIP64: 16 Exabyte / 18 tỷ tỷ tệp |
| Độ trong suốt | Không áp dụng |
| Truyền phát & Tăng dần | Thư 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ật | ZIP (Hiện tại) | 7-Zip (7z) | TAR.GZ | RAR |
|---|---|---|---|---|
| Tương thích với hệ điều hành | Hỗ 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ứ ba | Gốc trên Linux/macOS; yêu cầu công cụ trong Windows | Yêu cầu WinRAR hoặc thư viện unrar |
| Hiệu quả nén | Trung 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ắn | Khô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ọc | Trích xuất nhanh tức thì bất kỳ tệp đơn lẻ nào | Yê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 đích | Nhanh 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
Ư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ã.
Các cặp chuyển đổi ZIP liên quan
Chuyển tệp lưu trữ ZIP sang TAR, đổi vùng chứa tệp nén thành kho lưu trữ TAR chưa nén phù hợp với môi trường Unix.
Việc chuyển đổi tệp lưu trữ TAR sang ZIP biến một định dạng lưu trữ Unix chưa nén thành định dạng tệp nén được hỗ trợ rộng rãi.
Chuyển ZIP sang 7z sẽ đóng gói lại kho lưu trữ với bộ tùy chọn nén khác; tệp kết quả có thể nhỏ hoặc lớn hơn tùy tệp và cài đặt.
Chuyển 7z sang ZIP có thể giúp mở kho lưu trữ bằng phần mềm hỗ trợ ZIP dễ hơn. Tỷ lệ nén tùy loại tệp và cài đặt.
Giải nén tệp lưu trữ RAR4/RAR5 không chia thành nhiều phần, kể cả loại nén liên tục (solid), thành tệp ZIP chuẩn ngay trong trình duyệt, không tải tệp lên máy chủ.