Định dạng tệp zip được xác định bởi PKWARE. Bạn có thể tìm thấy đặc điểm kỹ thuật tập tin của họ here.
Gần đầu bạn sẽ tìm thấy đặc điểm kỹ thuật tiêu đề:
A. phần đầu tập tin địa phương:
local file header signature 4 bytes (0x04034b50)
version needed to extract 2 bytes
general purpose bit flag 2 bytes
compression method 2 bytes
last mod file time 2 bytes
last mod file date 2 bytes
crc-32 4 bytes
compressed size 4 bytes
uncompressed size 4 bytes
file name length 2 bytes
extra field length 2 bytes
file name (variable size)
extra field (variable size)
Từ đây bạn có thể thấy rằng 4 byte đầu tiên của tiêu đề nên chữ ký tệp phải là giá trị hex 0x04034b50. Thứ tự byte trong tập tin là cách khác vòng - PKWARE xác định rằng "Tất cả các giá trị được lưu trữ theo thứ tự byte nhỏ, trừ khi có quy định khác", vì vậy nếu bạn sử dụng trình chỉnh sửa hex để xem tệp, bạn sẽ thấy 50 4b 03 04 như 4 byte đầu tiên.
Bạn có thể sử dụng quyền này để kiểm tra xem tệp của bạn có phải là tệp zip hay không. Nếu bạn mở tệp trong notepad, bạn sẽ thấy rằng hai byte đầu tiên (50 và 4b) là ký tự ASCII PK.
Nguồn
2009-12-11 10:18:19
+1 Thông tin tuyệt vời. Nhưng lý tưởng, nó sẽ thay đổi từ nhà cung cấp đến nhà cung cấp, có nghĩa là thuật toán nén. –
http://en.wikipedia.org/wiki/ZIP_(file_format) –
Định dạng tệp ZIP không thay đổi tùy theo nhà cung cấp. Nó được định nghĩa ban đầu bởi PKWARE, nhưng nhiều nhà cung cấp khác hiện hỗ trợ định dạng nén tương tự. Định dạng này chỉ định PK trong tiêu đề, vì vậy ngay cả các nhà cung cấp khác sẽ vẫn bao gồm phần này của tiêu đề. Các định dạng tệp khác nhau như arc, 7z, lhz, gzip, vv sẽ có các thông số kỹ thuật khác nhau và các tiêu đề khác nhau, nhưng tệp zip sẽ luôn có định dạng này trong tiêu đề. –