ZIP
Phần mở rộng tên file |
|
---|---|
Kiểu phương tiện |
|
Mã định danh loại thống nhất (UTI) | com.pkware.zip-archive |
Magic number |
|
Phát triển bởi | PKWARE, Inc. |
Phát hành lần đầu | 14 tháng 2 năm 1989 |
Bản mới nhất | 6.3.10 / 1 tháng 11 năm 2022 |
Kiểu định dạng | Nén dữ liệu |
Được mở rộng thành |
|
Tiêu chuẩn | APPNOTE from PKWARE ISO/IEC 21320-1:2015 (a subset of ZIP file format 6.3.3) |
ZIP là một định dạng file lưu trữ hỗ trợ nén không mất dữ liệu. File ZIP có thể chứa một hoặc nhiều file hoặc thư mục có thể đã được nén. Định dạng ZIP cho phép một số thuật toán nén, mặc dù DEFLATE là phổ biến nhất. Định dạng này ban đầu được tạo vào năm 1989 và lần đầu tiên được triển khai trong tiện ích PKZIP của PKWARE, Inc.,[2] để thay thế cho định dạng nén ARC trước đó của Thom Henderson.Định dạng ZIP sau đó đã nhanh chóng được hỗ trợ bởi nhiều tiện ích phần mềm khác ngoài PKZIP. Microsoft đã đưa hỗ trợ ZIP tích hợp (dưới tên "compressed folders") vào các phiên bản Microsoft Windows kể từ năm 1998 thông qua tiện ích bổ sung "Plus! 98" cho Windows 98. Hỗ trợ gốc đã được thêm vào kể từ năm 2000 trong Windows ME. [cần dẫn nguồn] Apple đã đưa hỗ trợ ZIP tích hợp vào Mac OS X 10.3 (thông qua BOMArchiveHelper, bây giờ là Archive Utility) và mới hơn. Hầu hết các hệ điều hành tự do đều tích hợp hỗ trợ ZIP theo cách tương tự như Windows và macOS.
File ZIP thường sử dụng phần mở rộng tệp .zip or .ZIP và loại MIME application/zip
. ZIP được nhiều chương trình sử dụng làm định dạng tệp cơ sở, thường dưới một tên khác. Khi điều hướng hệ thống file thông qua giao diện người dùng, các biểu tượng đồ họa đại diện cho tệp ZIP thường xuất hiện dưới dạng tài liệu hoặc đối tượng khác có biểu tượng khóa kéo nổi bật.
Lịch sử
[sửa | sửa mã nguồn]Định dạng tệp .ZIP được thiết kế bởi Phil Katz của PKWARE và Gary Conway cả Infinity Design Concepts. Định dạng này được tạo ra sau khi Systems Enhancement Associates (SEA) đệ đơn kiện PKWARE với cáo buộc rằng các sản phẩm lưu trữ của công ty này, có tên là PKARC, là sản phẩm phái sinh của hệ thống lưu trữ ARC của SEA.[3] Tên "zip" (có nghĩa là "di chuyển với tốc độ cao") được đề xuất bởi người bạn của Katz, Robert Mahoney.[4] Họ muốn ngụ ý rằng sản phẩm của họ sẽ nhanh hơn ARC và các định dạng nén khác vào thời điểm đó.[4] Phiên bản đầu tiên được biết đến của .ZIP File Format Specification lần đầu tiên được công bố như một phần của gói PKZIP 0.9 trong tệp APPNOTE.TXT vào năm 1989[cần dẫn nguồn] Bằng cách phân phối định dạng zip trong APPNOTE.TXT, khả năng tương thích với định dạng zip đã lan rộng trên Internet công cộng trong những năm 1990.[5]
PKWARE và Infinity Design Concepts đã đưa ra thông cáo báo chí chung vào ngày 14 tháng 2 năm 1989, phát hành định dạng .ZIP vào phạm vi công cộng.[6][7][8][9][10]
Lịch sử phiên bản
[sửa | sửa mã nguồn]The .ZIP File Format Specification has its own version number, which does not necessarily correspond to the version numbers for the PKZIP tool, especially with PKZIP 6 or later. At various times, PKWARE has added preliminary features that allow PKZIP products to extract archives using advanced features, but PKZIP products that create such archives are not made available until the next major release. Other companies or organizations support the PKWARE specifications at their own pace.
The .ZIP file format specification is formally named "APPNOTE - .ZIP File Format Specification" and it is published on the PKWARE.com website since the late 1990s.[11] Several versions of the specification were not published. Specifications of some features such as BZIP2 compression, strong encryption specification and others were published by PKWARE a few years after their creation. The URL of the online specification was changed several times on the PKWARE website.
A summary of key advances in various versions of the PKWARE software and/or specification:
- 2.0: (1993) File entries can be compressed with DEFLATE and use traditional PKWARE encryption (ZipCrypto).
- 2.1: (1996) Deflate64 compression support (claimed in APPNOTE 6.1.0 published much later).[12] APPNOTE may not have been published for 2.1.
- 2.5: PKWARE DCL Implode compression.[12] APPNOTE may not have been published for 2.5.
- 2.5: Deflate64 compression support (claimed in later user manuals, e.g. in 2004.)[13]
- 4.0: (2000) Deflate64 compression support (according to information provided by Jim Peterson, Chief Scientist, PKWARE, to the Library of Congress; and APPNOTE 4.0).[14][15]
- 4.5: (2001)[16] Documented 64-bit zip format.
- 4.6: (2001) BZIP2 compression (not published online until the publication of APPNOTE 5.2)
- 5.0: (2002) SES: DES, Triple DES, RC2, RC4 supported for encryption (not published online until the publication of APPNOTE 5.2)
- 5.2: (2003)[17][18] AES encryption support for SES (defined in APPNOTE 5.1 that was not published online) and AES from WinZip ("AE-x"); corrected version of RC2-64 supported for SES encryption.
- 6.1: (2004)[12] Documented certificate storage.
- 6.2.0: (2004)[19] Documented Central Directory Encryption.
- 6.3.0: (2006)[20] Documented Unicode (UTF-8) filename storage. Expanded list of supported compression algorithms (LZMA, PPMd+), encryption algorithms (Blowfish, Twofish), and hashes.
- 6.3.1: (2007)[21] Corrected standard hash values for SHA-256/384/512.
- 6.3.2: (2007)[22] Documented compression method 97 (WavPack).
- 6.3.3: (2012)[23] Document formatting changes to facilitate referencing the PKWARE Application Note from other standards using methods such as the JTC 1 Referencing Explanatory Report (RER) as directed by JTC 1/SC 34 N 1621.
- 6.3.4: (2014)[24] Updates the PKWARE, Inc. office address.
- 6.3.5: (2018)[25] Documented compression methods 16, 96 and 99, DOS timestamp epoch and precision, added extra fields for keys and decryption, as well as typos and clarifications.
- 6.3.6: (2019)[26] Corrected typographical error.
- 6.3.7: (2020)[27] Added Zstandard compression method ID 20.
- 6.3.8: (2020)[28] Moved Zstandard compression method ID from 20 to 93, deprecating the former. Documented method IDs 94 and 95 (MP3 and XZ respectively).
- 6.3.9: (2020)[29] Corrected a typo in Data Stream Alignment description.
- 6.3.10: (2022)[30] Added several z/OS attribute values for APPENDIX B. Added several additional 3rd party Extra Field mappings.
WinZip, starting with version 12.1, uses the extension .zipx for ZIP files that use compression methods newer than DEFLATE; specifically, methods BZip, LZMA, PPMd, Jpeg and Wavpack. The last 2 are applied to appropriate file types when "Best method" compression is selected.[31][32]
Chuẩn hóa
[sửa | sửa mã nguồn]In April 2010, ISO/IEC JTC 1 initiated a ballot to determine whether a project should be initiated to create an ISO/IEC International Standard format compatible with ZIP.[33] The proposed project, entitled Document Packaging, envisaged a ZIP-compatible 'minimal compressed archive format' suitable for use with a number of existing standards including OpenDocument, Office Open XML and EPUB. It would solve problems such as the need for a formal standard, the variety of extensions of ZIP, the undesirability of a technology used for Open Standards potentially having proprietary extensions or "submarine" patents (i.e. which could surface unexpectedly), the need for better internationalization, and a desire not to actually fragment the technology further by purporting to provide an alternative specification to the PKWARE APPNOTE document.
In 2015, ISO/IEC 21320-1 "Document Container File — Part 1: Core" was published which states that "Document container files are conforming Zip files", normatively referencing the PKWARE APPNOTE document. It requires the following main restrictions of the ZIP file format:[34]
- Files in ZIP archives may only be stored uncompressed, or using the "deflate" compression (i.e. compression method may contain the value "0" - stored or "8" - deflated). The patent on the core "deflate" compression method expired in late 2010.[35]
- The encryption features are prohibited.
- The digital signature features (from SES) are prohibited.
- The "patched data" features (from PKPatchMaker) are prohibited.
- Archives may not span multiple volumes or be segmented.
Di sản
[sửa | sửa mã nguồn]Có nhiều tiêu chuẩn và định dạng khác sử dụng "zip" làm một phần tên của chúng. Ví dụ, zip khác với gzip, được định nghĩa trong IETF RFC 1952.Cả zip và gzip chủ yếu sử dụng thuật toán DEFLATE để nén. Tương tự như vậy, định dạng ZLIB (IETF RFC 1950) cũng sử dụng thuật toán nén DEFLATE nhưng chỉ định các tiêu đề khác nhau để kiểm tra lỗi và tính nhất quán. Các định dạng và chương trình phổ biến khác có tên tương tự với các định dạng gốc khác nhau bao gồm 7-Zip, bzip2, and rzip.
Quan tâm
[sửa | sửa mã nguồn]Hệ số nén tối đa lý thuyết cho luồng DEFLATEthô là khoảng 1032 về một,[36] nhưng bằng cách khai thác định dạng ZIP theo những cách không mong muốn, các kho lưu trữ ZIP có tỷ lệ nén là hàng tỷ về một có thể được xây dựng. Những quả bom zip này giải nén thành các kích thước cực lớn, làm quá tải dung lượng của máy tính mà chúng được giải nén.[37]
Xem thêm
[sửa | sửa mã nguồn]Chú thích
[sửa | sửa mã nguồn]- ^ Registration of a new MIME Content-Type/Subtype - application/zip, IANA, ngày 20 tháng 7 năm 1993, truy cập ngày 5 tháng 1 năm 2012
- ^ "Phillip Katz, Computer Software Pioneer, 37". The New York Times'. ngày 1 tháng 5 năm 2000. Truy cập ngày 14 tháng 6 năm 2009.
- ^ Murray, Matt; Tannenbaum, Jeffrey A. (ngày 15 tháng 8 năm 1997). "The Rise and Fall of a Software Star; Phil Katz Loved Code -- and Liquor". The Wall Street Journal . Bản gốc lưu trữ ngày 4 tháng 3 năm 2016. Alt URL Updated 2000-06-19.
- ^ a b "The BBS Documentary Library". www.bbsdocumentary.com. Truy cập ngày 25 tháng 9 năm 2020.
- ^ Stay, Michael. "ZIP Attacks with Reduced Known Plaintext" (PDF). Math.ucr.edu. Bản gốc (PDF) lưu trữ ngày 28 tháng 10 năm 2017. Truy cập ngày 9 tháng 9 năm 2017.
- ^ Brian Livingston (ngày 8 tháng 9 năm 2003), PKZip Must Open Up, truy cập ngày 5 tháng 1 năm 2012,
The ZIP file format is given freely into the public domain and can be claimed neither legally nor morally by any individual, entity or company
- ^ Where Did Zip Files Come From Anyway?, Infinity Design Concepts, Inc., Bản gốc lưu trữ ngày 20 tháng 11 năm 2012, truy cập ngày 5 tháng 1 năm 2012
- ^ Press Release, 1989, truy cập ngày 5 tháng 1 năm 2012
- ^ Our Founder - Phil Katz, PKWARE, Bản gốc lưu trữ ngày 1 tháng 10 năm 2010, truy cập ngày 5 tháng 1 năm 2012
- ^ Gareth Horton; Rob Weir; Alex Brown (ngày 2 tháng 11 năm 2010), sc34-wg1, truy cập ngày 5 tháng 1 năm 2012
- ^ .ZIP Application Note, truy cập ngày 20 tháng 7 năm 2012
- ^ a b c File: APPNOTE - .ZIP File Format Specification Version: 6.1.0 - Notification of Change – Revised: 01/20/2004, ngày 19 tháng 8 năm 2004, Bản gốc lưu trữ ngày 19 tháng 8 năm 2004, truy cập ngày 21 tháng 4 năm 2012
- ^ Users Manual: PKZIP Server; SecureZIP Server. PKWARE, Inc. 2004. tr. 72.
- ^ "ZIP File Format (PKWARE)". Sustainability of Digital Formats: Planning for Library of Congress Collections. Library of Congress. ngày 28 tháng 5 năm 2020. Truy cập ngày 16 tháng 4 năm 2025.
- ^ File: APPNOTE.TXT - .ZIP File Format Specification Version: 4.0 Revised: 11/01/2000, ngày 1 tháng 11 năm 2000, truy cập ngày 16 tháng 4 năm 2025
- ^ File: APPNOTE.TXT - .ZIP File Format Specification Version: 4.5 Revised: 11/01/2001, ngày 3 tháng 12 năm 2001, Bản gốc lưu trữ ngày 3 tháng 12 năm 2001, truy cập ngày 21 tháng 4 năm 2012
- ^ APPNOTE.TXT - .ZIP File Format Specification, Version: 5.2 - Notification of Change, ngày 16 tháng 7 năm 2003, truy cập ngày 5 tháng 1 năm 2012
- ^ File: APPNOTE.TXT - .ZIP File Format Specification Version: 5.2 - Notification of Change – Revised: 06/02/2003, ngày 2 tháng 7 năm 2003, Bản gốc lưu trữ ngày 2 tháng 7 năm 2003, truy cập ngày 21 tháng 4 năm 2012
- ^ APPNOTE.TXT - .ZIP File Format Specification, Version: 6.2.0 - Notification of Change, ngày 26 tháng 4 năm 2004, truy cập ngày 5 tháng 1 năm 2012
- ^ APPNOTE.TXT - .ZIP File Format Specification, Version: 6.3.0, ngày 29 tháng 9 năm 2006, truy cập ngày 5 tháng 1 năm 2012
- ^ APPNOTE.TXT - .ZIP File Format Specification, Version: 6.3.1, ngày 11 tháng 4 năm 2007, truy cập ngày 25 tháng 6 năm 2018
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.2, ngày 28 tháng 9 năm 2007, truy cập ngày 25 tháng 6 năm 2018
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.3, ngày 1 tháng 9 năm 2012, truy cập ngày 25 tháng 6 năm 2018
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.4, ngày 1 tháng 10 năm 2014, truy cập ngày 25 tháng 6 năm 2018
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.5, ngày 20 tháng 12 năm 2018, truy cập ngày 3 tháng 1 năm 2019
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.6, ngày 26 tháng 4 năm 2019, truy cập ngày 3 tháng 1 năm 2019
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.7, ngày 1 tháng 6 năm 2020, truy cập ngày 6 tháng 6 năm 2020
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.8, ngày 15 tháng 6 năm 2020, truy cập ngày 7 tháng 7 năm 2020
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.9, ngày 15 tháng 7 năm 2020, truy cập ngày 8 tháng 8 năm 2020
- ^ APPNOTE.TXT - .ZIP File Format Specification Version: 6.3.10, ngày 1 tháng 11 năm 2022, truy cập ngày 20 tháng 11 năm 2022
- ^ "Additional Compression Methods Specification". WinZip. Mansfield, CT: WinZip Computing, S.L. ngày 19 tháng 5 năm 2009. Truy cập ngày 24 tháng 5 năm 2009.
- ^ "What is a Zipx File?". Winzip: Knowledgebase. Mansfield, CT: WinZip Computing, S.L. ngày 13 tháng 8 năm 2010. Truy cập ngày 17 tháng 8 năm 2010.
- ^ "ISO/IEC JTC 1/SC 34 — Document Description and Processing Languages" (PDF). ngày 12 tháng 4 năm 2010. Bản gốc (PDF) lưu trữ 12 tháng 5 2014. Truy cập 10 tháng 5 2014.
- ^ "ISO/IEC 21320-1:2015 Document Container File — Part 1: Core". ITTF. 2015.
- ^ Katz, Phillip W. (ngày 24 tháng 9 năm 1991). "String searcher, and compressor using same".
- ^ "zlib Technical Details". Truy cập ngày 10 tháng 7 năm 2019.
- ^ Smith, Ernie (ngày 10 tháng 7 năm 2019). "The Most Clever 'Zip Bomb' Ever Made Explodes a 46MB File to 4.5 Petabytes". Motherboard. Vice Media. Truy cập ngày 10 tháng 7 năm 2019.
Liên kết ngoài
[sửa | sửa mã nguồn]- .ZIP Application Note Lưu trữ ngày 17 tháng 7 năm 2017 tại Wayback Machine landing page for PKWARE's current and historical .ZIP file
- ISO/IEC 21320-1:2015 — Document Container File — Part 1: Core
- Zip Files: History, Explanation and Implementation
- Shrink, Reduce, and Implode: The Legacy Zip Compression Methods
- APPNOTE.TXT mirror
- Structure of PKZip file Format specifications, graphical tables