ZIP (تنسيق الملف)

تنسيق ملف ZIP
امتداد اسم الملف.zip .zipx .z01 .zx01
نوع الوسائط على الإنترنتapplication/zip
application/x-zip-compressed
[1]
معرف النوع الموحد (UTI)com.pkware.zip-archive
الرقم السحري
  • لا أحد
  • PK\x03\x04
  • PK\x05\x06(فارغ)
  • PK\x07\x08(ممتد)
تم التطوير بواسطةشركة بي كي وير
الإصدار الأولي14 فبراير 1989 ؛ منذ 35 عامًا ( 1989-02-14 )
أحدث إصدار
6.3.10
1 نوفمبر 2022 ؛ منذ 23 شهرًا ( 2022-11-01 )
نوع التنسيقضغط البيانات
ممتدة إلى
معيارملاحظة من PKWARE
ISO/IEC 21320-1:2015 (مجموعة فرعية من تنسيق ملف ZIP 6.3.3)
تنسيق مفتوح ؟نعم

ZIP هو تنسيق ملف أرشيف يدعم ضغط البيانات بدون فقدان . قد يحتوي ملف ZIP على ملف أو أكثر أو مجلدات ربما تم ضغطها. يسمح تنسيق ملف ZIP بعدد من خوارزميات الضغط ، على الرغم من أن DEFLATE هو الأكثر شيوعًا. تم إنشاء هذا التنسيق في الأصل عام 1989 وتم تنفيذه لأول مرة في أداة PKZIP الخاصة بشركة PKWARE، Inc. ، [2] كبديل لتنسيق ضغط ARC السابق بواسطة Thom Henderson. ثم تم دعم تنسيق ZIP بسرعة بواسطة العديد من أدوات البرامج الأخرى غير PKZIP. أدرجت Microsoft دعم ZIP المدمج (تحت اسم "المجلدات المضغوطة") في إصدارات Microsoft Windows منذ عام 1998 عبر الوظيفة الإضافية "Plus! 98" لنظام التشغيل Windows 98. تمت إضافة الدعم الأصلي اعتبارًا من عام 2000 في Windows ME. [ بحاجة لمصدر ] أدرجت Apple دعم ZIP المدمج في Mac OS X 10.3 (عبر BOMArchiveHelper، الآن Archive Utility ) والإصدارات الأحدث. تتمتع معظم أنظمة التشغيل المجانية بدعم مدمج لـ ZIP بنفس الطريقة الموجودة في أنظمة التشغيل Windows وmacOS.

تستخدم ملفات ZIP عمومًا امتدادات الملفات .zip أو .ZIP ونوع الوسائط MIME . [1] يستخدم العديد من البرامج تنسيق ZIP كتنسيق ملف أساسي، عادةً تحت اسم مختلف. عند التنقل عبر نظام ملفات عبر واجهة مستخدم، غالبًا ما تظهر الرموز الرسومية التي تمثل ملفات ZIP كمستند أو كائن آخر يتميز بشكل بارز بسحاب . application/zip

تاريخ

تم تصميم تنسيق ملف .ZIP بواسطة Phil Katz من PKWARE و Gary Conway من Infinity Design Concepts. تم إنشاء التنسيق بعد أن رفعت Systems Enhancement Associates (SEA) دعوى قضائية ضد PKWARE زاعمة أن منتجات الأرشفة الأخيرة، المسماة PKARC، كانت مشتقة من نظام أرشفة ARC الخاص بـ SEA . [3] تم اقتراح اسم "zip" (بمعنى "التحرك بسرعة عالية") من قبل صديق Katz، Robert Mahoney. [4] أرادوا أن يشيروا إلى أن منتجهم سيكون أسرع من ARC وتنسيقات الضغط الأخرى في ذلك الوقت. [4] تم نشر أقدم إصدار معروف من مواصفات تنسيق ملف .ZIP لأول مرة كجزء من حزمة PKZIP 0.9 ضمن الملف APPNOTE.TXT في عام 1989. [ بحاجة لمصدر ] من خلال توزيع تنسيق ملف zip داخل APPNOTE.TXT، انتشر التوافق مع تنسيق ملف zip على نطاق واسع على الإنترنت العام خلال التسعينيات. [5]

أصدرت شركتا PKWARE وInfinity Design Concepts بيانًا صحفيًا مشتركًا في 14 فبراير 1989، حيث أصدرتا تنسيق الملف .ZIP في المجال العام . [6] [7] [8] [9] [10]

تاريخ الإصدار

تحتوي مواصفات تنسيق ملف .ZIP على رقم إصدار خاص بها، والذي لا يتوافق بالضرورة مع أرقام الإصدار لأداة PKZIP، وخاصة مع PKZIP 6 أو الإصدارات الأحدث. في أوقات مختلفة، أضافت PKWARE ميزات أولية تسمح لمنتجات PKZIP باستخراج الأرشيفات باستخدام ميزات متقدمة، لكن منتجات PKZIP التي تنشئ مثل هذه الأرشيفات لا تتوفر إلا مع الإصدار الرئيسي التالي. تدعم شركات أو مؤسسات أخرى مواصفات PKWARE بالسرعة التي تناسبها.

يُطلق على مواصفات تنسيق ملف .ZIP رسميًا اسم "APPNOTE - مواصفات تنسيق ملف .ZIP" ويتم نشرها على موقع PKWARE.com منذ أواخر التسعينيات. [11] لم يتم نشر العديد من إصدارات المواصفات. تم نشر مواصفات بعض الميزات مثل ضغط BZIP2 ومواصفات التشفير القوي وغيرها بواسطة PKWARE بعد بضع سنوات من إنشائها. تم تغيير عنوان URL للمواصفات عبر الإنترنت عدة مرات على موقع PKWARE.

ملخص لأهم التطورات في الإصدارات المختلفة لمواصفات PKWARE:

  • 2.0: (1993) [1] يمكن ضغط إدخالات الملف باستخدام DEFLATE واستخدام تشفير PKWARE التقليدي (ZipCrypto).
  • 2.1: (1996) ضغط Deflate64
  • 4.5: (2001) [12] تنسيق zip موثق 64 بت.
  • 4.6: (2001) ضغط BZIP2 (لم يتم نشره عبر الإنترنت حتى نشر APPNOTE 5.2)
  • 5.0: (2002) SES: دعم DES و Triple DES و RC2 و RC4 للتشفير (لم يتم نشره عبر الإنترنت حتى نشر APPNOTE 5.2)
  • 5.2: (2003) [13] [14] دعم تشفير AES لـ SES (المحدد في APPNOTE 5.1 ​​الذي لم يتم نشره عبر الإنترنت) وAES من WinZip ("AE-x")؛ الإصدار المصحح من RC2-64 مدعوم لتشفير SES.
  • 6.1: (2004) [15] تخزين الشهادة الموثقة.
  • 6.2.0: (2004) [16] تشفير الدليل المركزي الموثق.
  • 6.3.0: (2006) [17] توثيق تخزين أسماء الملفات بتنسيق Unicode ( UTF-8 ). قائمة موسعة بخوارزميات الضغط المدعومة ( LZMA ، PPMd+ )، وخوارزميات التشفير ( Blowfish ، Twofish )، والهاشات.
  • 6.3.1: (2007) [18] قيم التجزئة القياسية المصححة لـ SHA-256/384/512.
  • 6.3.2: (2007) [19] طريقة الضغط الموثقة 97 ( WavPack ).
  • 6.3.3: (2012) [20] تغييرات تنسيق المستندات لتسهيل الرجوع إلى ملاحظة تطبيق PKWARE من معايير أخرى باستخدام أساليب مثل تقرير التوضيح المرجعي JTC 1 (RER) وفقًا لتوجيهات JTC 1/SC 34 N 1621.
  • 6.3.4: (2014) [21] تحديث عنوان مكتب PKWARE, Inc.
  • 6.3.5: (2018) [22] طرق الضغط الموثقة 16 و96 و99، وطابع زمني DOS ودقته، والحقول الإضافية المضافة للمفاتيح وفك التشفير، بالإضافة إلى الأخطاء المطبعية والتوضيحات.
  • 6.3.6: (2019) [23] تم تصحيح خطأ مطبعي.
  • 6.3.7: (2020) [24] تمت إضافة طريقة ضغط Zstandard رقم 20.
  • 6.3.8: (2020) [25] تم نقل معرف طريقة ضغط Zstandard من 20 إلى 93، مما أدى إلى إلغاء الأول. تم توثيق معرفي الطريقة 94 و95 ( MP3 و XZ على التوالي).
  • 6.3.9: (2020) [26] تم تصحيح خطأ مطبعي في وصف محاذاة تدفق البيانات.
  • 6.3.10: (2022) [27] تمت إضافة العديد من قيم سمات z/OS للملحق B. تمت إضافة العديد من تعيينات الحقول الإضافية التابعة لجهات خارجية.

يستخدم برنامج WinZip ، بدءًا من الإصدار 12.1، الامتداد .zipx لملفات ZIP التي تستخدم طرق ضغط أحدث من DEFLATE؛ وتحديدًا طرق BZip وLZMA وPPMd وJpeg وWavpack. يتم تطبيق الطريقتين الأخيرتين على أنواع الملفات المناسبة عند تحديد "أفضل طريقة ضغط". [28] [29]

التوحيد القياسي

في أبريل 2010، بدأت ISO/IEC JTC 1 التصويت لتحديد ما إذا كان ينبغي البدء في مشروع لإنشاء تنسيق معياري دولي ISO/IEC متوافق مع ZIP. [30] تصور المشروع المقترح، بعنوان تغليف المستندات ، "تنسيق أرشيف مضغوط بسيط" متوافق مع ZIP ومناسب للاستخدام مع عدد من المعايير الحالية بما في ذلك OpenDocument و Office Open XML و EPUB .

في عام 2015، تم نشر ISO/IEC 21320-1 "ملف حاوية المستندات - الجزء 1: الأساسي" والذي ينص على أن "ملفات حاوية المستندات هي ملفات ZIP مطابقة". ويتطلب ذلك القيود الرئيسية التالية لتنسيق ملف ZIP: [31]

  • لا يمكن تخزين الملفات في أرشيفات ZIP إلا بدون ضغط، أو باستخدام ضغط "deflate" (أي أن طريقة الضغط قد تحتوي على القيمة "0" - مخزنة أو "8" - مفرغة).
  • ميزات التشفير محظورة.
  • ميزات التوقيع الرقمي (من SES) محظورة.
  • تحظر ميزات "البيانات المرقعة" (من PKPatchMaker).
  • لا يجوز للأرشيفات أن تمتد على مجلدات متعددة أو أن تكون مجزأة.

تصميم

ملفات .ZIP هي أرشيفات تخزن ملفات متعددة. يسمح ZIP بضغط الملفات المضمنة باستخدام العديد من الطرق المختلفة، فضلاً عن تخزين ملف واحد ببساطة دون ضغطه. يتم تخزين كل ملف على حدة، مما يسمح بضغط ملفات مختلفة في نفس الأرشيف باستخدام طرق مختلفة. نظرًا لأن الملفات الموجودة في أرشيف ZIP مضغوطة بشكل فردي، فمن الممكن استخراجها، أو إضافة ملفات جديدة، دون تطبيق الضغط أو فك الضغط على الأرشيف بالكامل. يتناقض هذا مع تنسيق ملفات tar المضغوطة ، حيث لا يمكن معالجة الوصول العشوائي بسهولة.

يتم وضع دليل في نهاية ملف ZIP. وهذا يحدد الملفات الموجودة في ملف ZIP ويحدد مكان وجود هذا الملف في ملف ZIP. وهذا يسمح لقارئات ملفات ZIP بتحميل قائمة الملفات دون قراءة أرشيف ZIP بالكامل. كما يمكن لأرشيفات ZIP أن تتضمن بيانات إضافية غير مرتبطة بأرشيف ZIP. وهذا يسمح بتحويل أرشيف ZIP إلى أرشيف مستخرج ذاتيًا (تطبيق يقوم بفك ضغط البيانات الموجودة فيه)، عن طريق إضافة كود البرنامج إلى أرشيف ZIP ووضع علامة على الملف كملف قابل للتنفيذ. كما يتيح تخزين الكتالوج في النهاية إمكانية إخفاء ملف مضغوط عن طريق إضافته إلى ملف غير ضار، مثل ملف صورة GIF.

يستخدم تنسيق .ZIP خوارزمية CRC ذات 32 بت ويتضمن نسختين من كل بيانات تعريفية للمدخلات لتوفير حماية أكبر ضد فقد البيانات. ساهم ديفيد شوادرير في خوارزمية CRC-32 ويمكن العثور عليها في كتابه "دليل مبرمجي C إلى NetBIOS" الذي نشرته شركة Howard W. Sams & Co. Inc. [32]

بناء

التخطيط الداخلي لـ ZIP-64

يتم التعرف على ملف ZIP بشكل صحيح من خلال وجود سجل نهاية الدليل المركزي الموجود في نهاية بنية الأرشيف للسماح بإضافة ملفات جديدة بسهولة. إذا كان سجل نهاية الدليل المركزي يشير إلى أرشيف غير فارغ، فيجب تحديد اسم كل ملف أو دليل داخل الأرشيف في إدخال دليل مركزي ، إلى جانب بيانات تعريفية أخرى حول الإدخال، وإزاحة في ملف ZIP، تشير إلى بيانات الإدخال الفعلية. يسمح هذا بإجراء قائمة ملفات الأرشيف بسرعة نسبية، حيث لا يتعين قراءة الأرشيف بالكامل لرؤية قائمة الملفات. تتضمن الإدخالات داخل ملف ZIP أيضًا هذه المعلومات، للتكرار، في رأس ملف محلي . نظرًا لأنه يمكن إلحاق ملفات ZIP، فإن الملفات المحددة في الدليل المركزي في نهاية الملف فقط هي الصالحة. يعد فحص ملف ZIP بحثًا عن رؤوس الملفات المحلية غير صالح (باستثناء حالة الأرشيفات التالفة)، حيث قد يعلن الدليل المركزي أنه تم حذف بعض الملفات وتم تحديث ملفات أخرى.

على سبيل المثال، قد نبدأ بملف ZIP يحتوي على الملفات A وB وC. ثم يتم حذف الملف B وتحديث C. ويمكن تحقيق ذلك عن طريق إضافة ملف جديد C إلى نهاية ملف ZIP الأصلي وإضافة دليل مركزي جديد يسرد فقط الملف A والملف الجديد C. عندما تم تصميم ZIP لأول مرة، كان نقل الملفات عن طريق القرص المرن أمرًا شائعًا، إلا أن الكتابة على الأقراص كانت تستغرق وقتًا طويلاً. إذا كان لديك ملف ZIP كبير، ربما يمتد على عدة أقراص، وتحتاج فقط إلى تحديث عدد قليل من الملفات، بدلاً من قراءة وإعادة كتابة جميع الملفات، فسيكون من الأسرع بكثير قراءة الدليل المركزي القديم وإضافة الملفات الجديدة ثم إضافة دليل مركزي محدث.

لا يلزم أن يتطابق ترتيب إدخالات الملفات في الدليل المركزي مع ترتيب إدخالات الملفات في الأرشيف.

يتم تقديم كل إدخال مخزن في أرشيف ZIP من خلال رأس ملف محلي يحتوي على معلومات حول الملف مثل التعليق وحجم الملف واسم الملف، متبوعًا بحقول بيانات "إضافية" اختيارية، ثم بيانات الملف المضغوطة أو المشفرة. تعد حقول البيانات "الإضافية" مفتاحًا لإمكانية توسيع تنسيق ZIP. يتم استغلال الحقول "الإضافية" لدعم تنسيق ZIP64، وتشفير AES المتوافق مع WinZip، وسمات الملف، وطوابع زمنية عالية الدقة لملفات NTFS أو Unix. من الممكن إضافة امتدادات أخرى عبر الحقل "الإضافي". تتطلب المواصفات من أدوات ZIP تجاهل الحقول الإضافية التي لا تتعرف عليها.

يستخدم تنسيق ZIP "توقيعات" محددة مكونة من 4 بايتات للإشارة إلى الهياكل المختلفة في الملف. يتم تمييز كل إدخال في الملف بتوقيع محدد. يتم الإشارة إلى نهاية سجل الدليل المركزي بتوقيعه المحدد، ويبدأ كل إدخال في الدليل المركزي بتوقيع رأس الملف المركزي المكون من 4 بايتات .

لا يوجد علامة BOF أو EOF في مواصفات ZIP. تقليديًا، أول شيء في ملف ZIP هو إدخال ZIP، والذي يمكن التعرف عليه بسهولة من خلال توقيع رأس الملف المحلي الخاص به . ومع ذلك، ليس هذا هو الحال بالضرورة، حيث لا تتطلب مواصفات ZIP ذلك - والأمر الأكثر أهمية هو أن الأرشيف المستخرج ذاتيًا سيبدأ برأس ملف قابل للتنفيذ.

يجب على الأدوات التي تقرأ أرشيفات ZIP بشكل صحيح أن تبحث عن نهاية توقيع سجل الدليل المركزي، ثم، حسب الاقتضاء، سجلات الدليل المركزي الأخرى المشار إليها. يجب ألا تبحث عن إدخالات من أعلى ملف ZIP، لأنه (كما ذكرنا سابقًا في هذا القسم) يحدد الدليل المركزي فقط مكان بدء جزء الملف وأنه لم يتم حذفه. قد يؤدي المسح إلى نتائج إيجابية خاطئة، حيث لا يمنع التنسيق وجود بيانات أخرى بين الأجزاء، ولا يمنع تدفقات بيانات الملف من احتواء مثل هذه التوقيعات. ومع ذلك، فإن الأدوات التي تحاول استرداد البيانات من أرشيفات ZIP التالفة ستفحص الأرشيف على الأرجح بحثًا عن توقيعات رأس الملف المحلي؛ وهذا يصبح أكثر صعوبة بسبب حقيقة أن الحجم المضغوط لجزء الملف قد يتم تخزينه بعد جزء الملف، مما يجعل المعالجة المتسلسلة صعبة.

تنتهي أغلب التوقيعات بالعدد الصحيح القصير 0x4b50، والذي يتم تخزينه بترتيب صغير . وعند عرضه كسلسلة ASCII ، فإنه يُقرأ "PK"، وهي الأحرف الأولى من اسم المخترع Phil Katz. وبالتالي، عند عرض ملف ZIP في محرر نصوص، يكون البايتان الأوليان من الملف عادةً "PK". (ملفات ZIP ذاتية الاستخراج في أنظمة DOS وOS/2 وWindows تحتوي على ملف EXE قبل ملف ZIP، لذا تبدأ بـ "MZ"؛ وبالمثل، قد تسبق ملفات ZIP ذاتية الاستخراج لأنظمة تشغيل أخرى كود قابل للتنفيذ لاستخراج محتوى الأرشيف على تلك المنصة.)

تدعم مواصفات .ZIP أيضًا نشر الأرشيفات عبر ملفات نظام ملفات متعددة. كانت هذه الميزة مخصصة في الأصل لتخزين ملفات ZIP كبيرة عبر أقراص مرنة متعددة ، وتستخدم الآن لإرسال أرشيفات ZIP على أجزاء عبر البريد الإلكتروني، أو عبر وسائل نقل أخرى أو وسائط قابلة للإزالة.

إن نظام الملفات FAT في نظام DOS لديه دقة طابع زمني تبلغ ثانيتين فقط؛ وتحاكي سجلات ملفات ZIP هذه الدقة. ونتيجة لذلك، فإن دقة الطابع الزمني المضمنة للملفات في أرشيف ZIP تبلغ ثانيتين فقط، على الرغم من إمكانية استخدام حقول إضافية لتخزين طوابع زمنية أكثر دقة. لا يتضمن تنسيق ZIP أي فكرة عن المنطقة الزمنية ، لذا فإن الطوابع الزمنية لا تكون ذات معنى إلا إذا كان من المعروف المنطقة الزمنية التي تم إنشاؤها فيها.

في سبتمبر 2006، أصدرت شركة PKWARE مراجعة لمواصفات ZIP التي تنص على تخزين أسماء الملفات باستخدام UTF-8 ، مضيفة في النهاية توافق Unicode إلى ZIP. [17]

رؤوس الملفات

يتم تخزين كافة القيم متعددة البايتات في الرأس بترتيب بايتات صغير . تحسب كافة حقول الطول الطول بالبايتات.

رأس الملف المحلي

رأس الملف المحلي
الإزاحة بايتات الوصف [33]
0 4 توقيع رأس الملف المحلي = 0x04034b50 (PK♥♦ أو "PK\3\4")
4 2 الإصدار المطلوب للاستخراج (الحد الأدنى)
6 2 علم بت للأغراض العامة
8 2 طريقة الضغط؛ على سبيل المثال لا شيء = 0، DEFLATE = 8 (أو "\0x08\0x00")
10 2 وقت التعديل الأخير للملف
12 2 تاريخ آخر تعديل للملف
14 4 CRC-32 للبيانات غير المضغوطة
18 4 الحجم المضغوط (أو 0xffffffff لـ ZIP64)
22 4 الحجم غير المضغوط (أو 0xffffffff لـ ZIP64)
26 2 طول اسم الملف ( ن )
28 2 طول الحقل الإضافي ( م )
30 ن اسم الملف
30+ ن م حقل إضافي

يحتوي الحقل الإضافي على مجموعة متنوعة من البيانات الاختيارية مثل السمات الخاصة بنظام التشغيل. وهو مقسم إلى سجلات، كل منها يحتوي على توقيع 16 بت على الأقل وطول 16 بت. على سبيل المثال، يحتوي سجل الحقل الإضافي لملف ZIP64 المحلي على التوقيع 0x0001 وطول 16 بايت (أو أكثر) بحيث يمكن أن يتبعه قيمتان 64 بت (الحجمان غير المضغوط والمضغوط). امتداد ملف محلي شائع آخر هو 0x5455 (أو "UT") والذي يحتوي على طوابع زمنية UNIX UTC 32 بت.

ويتبع ذلك على الفور البيانات المضغوطة.

واصف البيانات

إذا تم تعيين البت عند الإزاحة 3 (0x08) لحقل الأعلام العامة، فلن يكون CRC-32 وحجم الملف معروفين عند كتابة الرأس. إذا كان الأرشيف بتنسيق Zip64، فإن حقول الحجم المضغوطة وغير المضغوطة يبلغ طولها 8 بايتات بدلاً من 4 بايتات (انظر القسم 4.3.9.2 [34] ). يتم ملء الحقول المكافئة في الرأس المحلي (أو في حقل المعلومات الإضافية الممتدة لـ Zip64 في حالة الأرشيفات بتنسيق Zip64) بالصفر، ويتم إلحاق CRC-32 والحجم في بنية مكونة من 12 بايتًا (يسبقها اختياريًا توقيع مكون من 4 بايتات) مباشرة بعد البيانات المضغوطة:

واصف البيانات
الإزاحة بايتات الوصف [33]
0 0 أو 4 توقيع الوصف الاختياري للبيانات = 0x08074b50
0 أو 4 4 CRC-32 للبيانات غير المضغوطة
4 أو 8 4 أو 8 الحجم المضغوط
8 أو 12 أو 16 4 أو 8 الحجم غير المضغوط

رأس ملف الدليل المركزي (CDFH)

إدخال رأس ملف الدليل المركزي هو شكل موسع للرأس المحلي:

رأس ملف الدليل المركزي
الإزاحة بايتات الوصف [33]
0 4 توقيع رأس ملف الدليل المركزي = 0x02014b50
4 2 النسخة التي تم صنعها بواسطة
6 2 الإصدار المطلوب للاستخراج (الحد الأدنى)
8 2 علم بت للأغراض العامة
10 2 طريقة الضغط
12 2 وقت التعديل الأخير للملف
14 2 تاريخ آخر تعديل للملف
16 4 CRC-32 للبيانات غير المضغوطة
20 4 الحجم المضغوط (أو 0xffffffff لـ ZIP64)
24 4 الحجم غير المضغوط (أو 0xffffffff لـ ZIP64)
28 2 طول اسم الملف ( ن )
30 2 طول الحقل الإضافي ( م )
32 2 طول تعليق الملف ( كيلو )
34 2 رقم القرص الذي يبدأ فيه الملف (أو 0xffff لـ ZIP64)
36 2 سمات الملف الداخلية
38 4 سمات الملف الخارجي
42 4 الإزاحة النسبية لرأس الملف المحلي (أو 0xffffffff لـ ZIP64). هذا هو عدد البايتات بين بداية القرص الأول الذي يوجد عليه الملف وبداية رأس الملف المحلي. يسمح هذا للبرامج التي تقرأ الدليل المركزي بتحديد موضع الملف داخل ملف ZIP.
46 ن اسم الملف
46+ ن م حقل إضافي
46+ ن + م ك تعليق الملف

نهاية سجل الدليل المركزي (EOCD)

بعد كل إدخالات الدليل المركزي يأتي سجل نهاية الدليل المركزي (EOCD)، والذي يمثل نهاية ملف ZIP:

نهاية سجل الدليل المركزي (EOCD)
الإزاحة بايتات الوصف [33]
0 4 نهاية توقيع الدليل المركزي = 0x06054b50
4 2 رقم هذا القرص (أو 0xffff لـ ZIP64)
6 2 القرص الذي يبدأ فيه الدليل المركزي (أو 0xffff لـ ZIP64)
8 2 عدد سجلات الدليل المركزي على هذا القرص (أو 0xffff لـ ZIP64)
10 2 العدد الإجمالي لسجلات الدليل المركزي (أو 0xffff لـ ZIP64)
12 4 حجم الدليل المركزي (بالبايت) (أو 0xffffffff لـ ZIP64)
16 4 إزاحة بداية الدليل المركزي، نسبة إلى بداية الأرشيف (أو 0xffffffff لـ ZIP64)
20 2 طول التعليق ( ن )
22 ن تعليق

يسمح هذا الترتيب بإنشاء ملف ZIP بمرور واحد، ولكن يتم أيضًا وضع الدليل المركزي في نهاية الملف لتسهيل إزالة الملفات من أرشيفات متعددة الأجزاء (على سبيل المثال "أقراص مرنة متعددة") ، كما تمت مناقشته سابقًا.

طرق الضغط

توثق مواصفات تنسيق ملف .ZIP طرق الضغط التالية: التخزين (بدون ضغط)، والتقليص ( LZW )، والتقليل (المستويات من 1 إلى 4؛ LZ77 + احتمالي)، والانكماش، وDeflate، وDeflate64، و bzip2 ، و LZMA ، و Zstandard ، و WavPack ، و PPMd ، ومتغير LZ77 المقدم بواسطة تعليمات IBM z/OS CMPSC. [35] [27] طريقة الضغط الأكثر استخدامًا هي DEFLATE ، والتي تم وصفها في IETF RFC  1951.

تتضمن الطرق الأخرى المذكورة، ولكن لم يتم توثيقها بالتفصيل في المواصفات ما يلي: PKWARE DCL Implode (IBM TERSE القديم)، و IBM TERSE الجديد ، وIBM LZ77 z Architecture (PFS)، ومتغير JPEG. تم حجز طريقة "Tokenize" لجهة خارجية، ولكن لم تتم إضافة الدعم لها مطلقًا. [22]

تستخدم PKWARE كلمة Implode بشكل مفرط: فبرنامج DCL/TERSE Implode يختلف عن برنامج PKZIP Implode القديم، وهو سلف برنامج Deflate. ولا يوجد توثيق لبرنامج DCL Implode جزئيًا بسبب طبيعته الملكية التي تحتفظ بها IBM، ولكن مارك أدلر قدم مع ذلك برنامج فك ضغط يسمى "blast" إلى جانب zlib. [36]

التشفير

يدعم ZIP نظام تشفير متماثل بسيط يعتمد على كلمة مرور يُعرف عمومًا باسم ZipCrypto. وهو موثق في مواصفات ZIP، ومن المعروف أنه معيب بشكل خطير. على وجه الخصوص، فهو عرضة لهجمات النص العادي المعروفة ، والتي تزداد سوءًا في بعض الحالات بسبب التنفيذات الرديئة لمولدات الأرقام العشوائية . [5] يمكن لأجهزة الكمبيوتر التي تعمل بنظام التشغيل Microsoft Windows الأصلي بدون أرشيفات خارجية فتح ملفات ZIP المشفرة باستخدام ZipCrypto، ولكن لا يمكنها إنشاءها، لكنها لا تستطيع استخراج محتويات الملفات باستخدام تشفير مختلف. [37]

تم توثيق ميزات جديدة بما في ذلك طرق الضغط والتشفير الجديدة (مثل AES ) في مواصفات تنسيق ملف ZIP منذ الإصدار 5.2. يستخدم 7-Zip و Xceed أيضًا معيارًا مفتوحًا قائمًا على AES تم تطويره بواسطة WinZip ("AE-x" في APPNOTE) ، ولكن بعض البائعين يستخدمون تنسيقات أخرى. [38] يدعم PKWARE SecureZIP (SES، الملكية) أيضًا طرق التشفير RC2 وRC4 وDES وTriple DES والتشفير والمصادقة المستندة إلى الشهادة الرقمية ( X.509 ) وتشفير رأس الأرشيف. ومع ذلك، فهو حاصل على براءة اختراع (انظر § جدل التشفير القوي). [39]

تم تقديم تشفير اسم الملف في مواصفات تنسيق ملف .ZIP 6.2، والتي تقوم بتشفير البيانات الوصفية المخزنة في جزء الدليل المركزي من الأرشيف، ولكن أقسام الرأس المحلي تظل غير مشفرة. يمكن للأرشيف الملتزم تزوير بيانات الرأس المحلي عند استخدام تشفير الدليل المركزي. اعتبارًا من الإصدار 6.2 من المواصفات، لم يتم إخفاء حقول طريقة الضغط والحجم المضغوط داخل الرأس المحلي بعد.

الرمز البريدي 64

كان تنسيق .ZIP الأصلي يحتوي على حد 4 جيجابايت (2 32 بايت) لأشياء مختلفة (الحجم غير المضغوط للملف، والحجم المضغوط للملف، والحجم الإجمالي للأرشيف)، بالإضافة إلى حد 65535 (2 16 -1) إدخالاً في أرشيف ZIP. في الإصدار 4.5 من المواصفات (وهو ليس مثل الإصدار 4.5 من أي أداة معينة)، قدمت PKWARE امتدادات تنسيق "ZIP64" للتغلب على هذه القيود، مما أدى إلى زيادة الحدود إلى 16  إكسابايت (2 64 بايت). في الأساس، يستخدم إدخال دليل مركزي "عادي" للملف، متبوعًا بإدخال دليل "zip64" اختياري، والذي يحتوي على الحقول الأكبر. [40]

إن تنسيق رأس الملف المحلي (LOC) ورأس ملف الدليل المركزي (CDFH) هو نفسه في ZIP وZIP64. ومع ذلك، يحدد ZIP64 حقلاً إضافيًا يمكن إضافته إلى تلك السجلات وفقًا لتقدير الضاغط، والغرض منه هو تخزين القيم التي لا تتناسب مع سجلات LOC أو CDFH الكلاسيكية. للإشارة إلى أن القيم الفعلية مخزنة في حقول ZIP64 الإضافية، يتم تعيينها على 0xFFFF أو 0xFFFFFFFF في سجل LOC أو CDFH المقابل. إذا لم يتناسب أحد الإدخالات مع سجل LOC أو CDFH الكلاسيكي، فيجب نقل هذا الإدخال فقط إلى حقل إضافي في ZIP64. قد تظل الإدخالات الأخرى في السجل الكلاسيكي. لذلك، لا يمكن تخزين جميع الإدخالات المعروضة في الجدول التالي في حقل إضافي في ZIP64. ومع ذلك، إذا ظهرت، فيجب أن يكون ترتيبها كما هو موضح في الجدول.

حقل معلومات إضافي ممتد في Zip64
الإزاحة بايتات الوصف [33]
0 2 معرف الرأس 0x0001
2 2 حجم جزء الحقل الإضافي (8، 16، 24 أو 28)
4 8 حجم الملف الأصلي غير المضغوط
12 8 حجم البيانات المضغوطة
20 8 إزاحة سجل الرأس المحلي
28 4 رقم القرص الذي يبدأ عليه هذا الملف

من ناحية أخرى، يختلف تنسيق EOCD لـ ZIP64 قليلاً عن إصدار ZIP العادي. [33]

نهاية سجل الدليل المركزي (EOCD64)
الإزاحة بايتات الوصف [33]
0 4 نهاية توقيع الدليل المركزي = 0x06064b50
4 8 حجم EOCD64 ناقص 12
12 2 النسخة التي تم صنعها بواسطة
14 2 الإصدار المطلوب للاستخراج (الحد الأدنى)
16 4 رقم هذا القرص
20 4 القرص حيث يبدأ الدليل المركزي
24 8 عدد سجلات الدليل المركزي على هذا القرص
32 8 العدد الإجمالي لسجلات الدليل المركزي
40 8 حجم الدليل المركزي (بايت)
48 8 إزاحة بداية الدليل المركزي، نسبة إلى بداية الأرشيف
56 ن التعليق (حتى حجم EOCD64)

كما أنه ليس بالضرورة السجل الأخير في الملف. يتبعه محدد نهاية الدليل المركزي (20 بايتًا إضافيًا في النهاية).

لا يدعم مستكشف الملفات في نظام التشغيل Windows XP ZIP64، ولكن يدعمه مستكشف الملفات في نظام التشغيل Windows Vista والإصدارات الأحدث. [ بحاجة لمصدر ] وبالمثل، تدعم بعض مكتبات الامتداد ZIP64، مثل DotNetZip وQuaZIP [41] وIO::Compress::Zip في Perl. يدعم ملف zipfile المدمج في Python ذلك منذ الإصدار 2.5 ويعتمد عليه افتراضيًا منذ الإصدار 3.4. [ 42] يدعم ملف java.util.zip المدمج في OpenJDK ZIP64 من إصدار Java 7. [ 43] تدعم واجهة برمجة تطبيقات Android Java ZIP64 منذ Android 6.0. [44] لا تدعم أداة الأرشيف في نظام التشغيل Mac OS Sierra بشكل ملحوظ ZIP64، ويمكنها إنشاء أرشيفات تالفة عندما يكون ZIP64 مطلوبًا. [45] ومع ذلك، فإن أمر ditto المرفق مع نظام التشغيل Mac OS سيفك ضغط ملفات ZIP64. [46] أحدث [ متى؟ ] تأتي إصدارات Mac OS مزودة بأدوات سطر الأوامر zip و unzip الخاصة بـ info-zip والتي تدعم Zip64: للتحقق، قم بتشغيل zip -v وابحث عن "ZIP64_SUPPORT".

الجمع مع تنسيقات الملفات الأخرى

يسمح تنسيق ملف .ZIP بتعليق يحتوي على ما يصل إلى 65535 (2 16 −1) بايت من البيانات في نهاية الملف بعد الدليل المركزي. [33] أيضًا، نظرًا لأن الدليل المركزي يحدد إزاحة كل ملف في الأرشيف بالنسبة للبداية، فمن الممكن أن يبدأ إدخال الملف الأول عند إزاحة غير الصفر، على الرغم من أن بعض الأدوات، على سبيل المثال gzip ، لن تعالج ملفات الأرشيف التي لا تبدأ بإدخال ملف عند الإزاحة صفر.

يسمح هذا بوجود بيانات عشوائية في الملف قبل وبعد بيانات أرشيف ZIP، ولا يزال الأرشيف قابلاً للقراءة بواسطة تطبيق ZIP. ومن الآثار الجانبية لهذا أنه من الممكن تأليف ملف يكون بمثابة أرشيف ZIP عامل وتنسيق آخر، بشرط أن يتسامح التنسيق الآخر مع البيانات العشوائية في نهايته أو بدايته أو وسطه. تستفيد الأرشيفات ذاتية الاستخراج (SFX)، من النموذج الذي يدعمه WinZip، من هذا، حيث إنها ملفات قابلة للتنفيذ ( .exe ) تتوافق مع مواصفات PKZIP AppNote.txt، ويمكن قراءتها بواسطة أدوات أو مكتبات zip المتوافقة.

يمكن استغلال هذه الخاصية في تنسيق .ZIP ، وتنسيق JAR الذي يعد أحد أشكال ZIP، لإخفاء محتوى غير مرغوب فيه (مثل فئات Java الضارة) داخل ملف يبدو غير ضار، مثل صورة GIF التي تم تحميلها على الويب. وقد تم إثبات أن هذا الاستغلال المزعوم لـ GIFAR يشكل هجومًا فعالًا ضد تطبيقات الويب مثل Facebook. [47]

الحدود

الحد الأدنى لحجم ملف .ZIP هو 22 بايت. يحتوي ملف zip الفارغ هذا فقط على سجل نهاية الدليل المركزي (EOCD):
[0x50,0x4B,0x05,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]

الحد الأقصى لحجم كل من ملف الأرشيف والملفات الفردية بداخله هو 4,294,967,295 بايت (2 32 −1 بايت، أو 4 جيجابايت ناقص 1 بايت) لملف ZIP القياسي. بالنسبة لملف ZIP64، الحد الأقصى للحجم هو 18,446,744,073,709,551,615 بايت (2 64 −1 بايت، أو 16 إكسابايت ناقص 1 بايت). [48]

ملحقات مفتوحة

الملف الشخصي المحسن للبحث (SOZip)

تم اقتراح ملف ZIP مُحسَّن البحث (SOZip) [49] لتنسيق ZIP. يحتوي هذا الملف على ملف واحد أو أكثر مضغوط بـ Deflate يتم تنظيمه وشرحه بحيث يمكن لقارئ SOZip إجراء وصول عشوائي سريع للغاية (بحث) داخل ملف مضغوط. يجعل SOZip من الممكن الوصول إلى الملفات المضغوطة الكبيرة مباشرة من ملف .zip دون فك ضغط مسبق. إنه يجمع بين استخدام عمليات مسح كتلة ZLib الصادرة على فترات منتظمة مع ملف فهرس مخفي يطابق إزاحات الملف غير المضغوط للإزاحات في التدفق المضغوط. يمكن لقارئات ZIP التي لا تدرك هذا الامتداد قراءة ملف ممكّن لـ SOZip بشكل طبيعي وتجاهل الميزات الموسعة التي تدعم إمكانية البحث الفعّالة.

ملحقات الملكية

حقل إضافي

يتضمن تنسيق ملف .ZIP ميزة حقل إضافية ضمن رؤوس الملفات، والتي يمكن استخدامها لتخزين بيانات إضافية غير محددة بمواصفات ZIP الحالية، والتي تسمح للأرشيفيين الملتزمين الذين لا يتعرفون على الحقول بتخطيها بأمان. يتم حجز معرفات الرأس من 0 إلى 31 للاستخدام بواسطة PKWARE. يمكن للبائعين الخارجيين استخدام المعرفات المتبقية للاستخدام الخاص.

جدل حول التشفير القوي

عندما تم إصدار النسخة التجريبية العامة من WinZip 9.0 في عام 2003، قدم WinZip تشفير AES-256 الخاص به ، باستخدام تنسيق ملف مختلف، جنبًا إلى جنب مع الوثائق الخاصة بالمواصفات الجديدة. [50] لم تكن معايير التشفير نفسها مملوكة ، لكن PKWARE لم تقم بتحديث APPNOTE.TXT ليشمل مواصفات التشفير القوية (SES) منذ عام 2001، والتي تم استخدامها بواسطة إصدارات PKZIP 5.0 و6.0. اتهم المستشار الفني لـ WinZip كيفن كيرني ومدير منتجات StuffIt ماثيو كوفينجتون PKWARE بحجب SES، لكن كبير مسؤولي التكنولوجيا في PKZIP جيم بيترسون ادعى أن التشفير القائم على الشهادة لا يزال غير مكتمل.

في خطوة مثيرة للجدل أخرى، تقدمت شركة PKWare بطلب للحصول على براءة اختراع في 16 يوليو 2003 تصف طريقة لدمج ZIP والتشفير القوي لإنشاء ملف آمن. [51]

في النهاية، وافقت PKWARE وWinZip على دعم منتجات بعضهما البعض. في 21 يناير 2004، أعلنت PKWARE عن دعم تنسيق ضغط AES المستند إلى WinZip. [52] في إصدار لاحق من WinZip beta، كان قادرًا على دعم ملفات ZIP المستندة إلى SES. [53] أصدرت PKWARE في النهاية الإصدار 5.2 من مواصفات تنسيق ملف .ZIP للجمهور، والتي وثقت SES. يدعم مشروع البرمجيات الحرة 7-Zip أيضًا AES، ولكن ليس SES في ملفات ZIP (كما يفعل منفذ POSIX الخاص به p7zip ).

عند استخدام تشفير AES ضمن WinZip، يتم تعيين طريقة الضغط دائمًا على 99، مع تخزين طريقة الضغط الفعلية في حقل بيانات إضافي AES. [54] على النقيض من ذلك، تخزن مواصفات التشفير القوي طريقة الضغط في جزء رأس الملف الأساسي للرأس المحلي والدليل المركزي، ما لم يتم استخدام تشفير الدليل المركزي لإخفاء/تشفير البيانات الوصفية.

تطبيق

تتوفر العديد من أدوات .ZIP ، والعديد من مكتبات .ZIP لبيئات البرمجة المختلفة؛ وتتضمن التراخيص المستخدمة برامج خاصة ومجانية . WinZip و WinRAR و Info-ZIP و ZipGenius و7- Zip و PeaZip و B1 Free Archiver هي أدوات .ZIP معروفة ومتوفرة على منصات مختلفة. تحتوي بعض هذه الأدوات على مكتبة أو واجهات برمجية.

بعض مكتبات التطوير المرخصة بموجب اتفاقية المصدر المفتوح هي libzip و libarchive و Info-ZIP . بالنسبة لـ Java: تحتوي Java Platform, Standard Edition على الحزمة "java.util.zip" للتعامل مع ملفات .ZIP القياسية ؛ تدعم مكتبة Zip64File على وجه التحديد الملفات الكبيرة (أكبر من 4 جيجابايت) وتتعامل مع ملفات .ZIP باستخدام الوصول العشوائي؛ وتحتوي أداة Apache Ant على تنفيذ أكثر اكتمالاً تم إصداره بموجب ترخيص Apache Software .

تضيف تطبيقات Info-ZIP لتنسيق .ZIP الدعم لميزات نظام الملفات Unix، مثل معرفات المستخدم والمجموعة، وأذونات الملفات، ودعم الروابط الرمزية. ويدرك تطبيق Apache Ant هذه الميزات إلى الحد الذي يجعله قادرًا على إنشاء ملفات بأذونات Unix محددة مسبقًا. كما تعرف تطبيقات Info-ZIP كيفية استخدام إمكانيات تصحيح الأخطاء المضمنة في تنسيق ضغط .ZIP . لا تفعل بعض البرامج ذلك، وستفشل في التعامل مع ملف يحتوي على أخطاء.

تدعم أدوات Info-ZIP Windows أيضًا أذونات نظام الملفات NTFS ، وستحاول التحويل من أذونات NTFS إلى أذونات Unix أو العكس عند استخراج الملفات. وقد يؤدي هذا إلى تركيبات غير مقصودة محتملة، على سبيل المثال، إنشاء ملفات .exe على وحدات تخزين NTFS مع رفض أذونات الملفات القابلة للتنفيذ.

تتضمن إصدارات Microsoft Windows دعم ضغط .ZIP في Explorer منذ إصدار حزمة Microsoft Plus! لنظام التشغيل Windows 98. تطلق Microsoft على هذه الميزة اسم "المجلدات المضغوطة". لا تدعم ميزة المجلدات المضغوطة في Windows جميع ميزات .ZIP . على سبيل المثال، لا يتم دعم التشفير في إصدار Windows 10 Home، [55] على الرغم من أنه يمكنه فك التشفير. لا يتم دعم ترميز إدخال Unicode حتى Windows 7 ، بينما لا يمكن قراءة الأرشيفات المقسمة والممتدة أو الكتابة عليها بواسطة ميزة المجلدات المضغوطة، ولا يتم دعم تشفير AES. [56] نشأ دعم Windows .zip من الاستحواذ على "VisualZip" الذي كتبه Dave Plummer . [57] [58] [59]

بدأ تنسيق OpenDocument (ODF) في استخدام تنسيق الأرشيف المضغوط في عام 2005، وODF هو تنسيق مفتوح لمستندات المكتب من جميع الأنواع، وهو تنسيق الملف الافتراضي المستخدم في Collabora Online و LibreOffice وغيرها. [60] بدأ Microsoft Office في استخدام تنسيق الأرشيف المضغوط في عام 2006 لملفات Office Open XML .docx و.xlsx و.pptx وما إلى ذلك، والتي أصبحت تنسيق الملف الافتراضي مع Microsoft Office 2007 .

قضايا التدويل

لم تدعم إصدارات التنسيق السابقة لـ 6.3.0 تخزين أسماء الملفات في Unicode . [61] وفقًا للمعيار، [61] يجب تخزين أسماء الملفات في ترميز CP437 ، وهو معيار لجهاز كمبيوتر IBM الشخصي ، [61] ولكن في الممارسة العملية، استخدمت أرشيفات DOS ترميز الأحرف المثبت في النظام . كما استخدم الأرشيف المدمج لنظام التشغيل Windows حتى 11 ترميز DOS المقابل للغة النظام المحددة للتوافق مع الإصدارات السابقة عند إنشاء الأرشيفات. بعد ذلك، تم تحديث المعيار ليشمل خيارين لتخزين أسماء الملفات في Unicode: 1) عند تعيين البت الحادي عشر في حقل علم البت للأغراض العامة، يجب اعتبار اسم الملف في حقل "اسم الملف" في الرأس على أنه UTF-8 بدلاً من ترميز بايت واحد، و2) تمت إضافة حقل Unicode Path Extra Field لتخزين اسم الملف في ترميز UTF-8. [61] استخدمت بعض إصدارات الأرشيفات على منصة Windows أيضًا ترميز ANSI في الماضي. وبالتالي، لاستخراج الملفات التي تحتوي أسماؤها على أحرف غير إنجليزية بشكل صحيح، من الضروري: [62]

  1. تحقق من وجود حقل Unicode Path Extra، وإذا كان موجودًا، فاستخدم اسم الملف منه، مشفرًا بتنسيق UTF-8.
  2. تأكد من وجود العلم 11 في حقل علم البت للأغراض العامة، وإذا تم تعيينه، فضع في اعتبارك ترميز اسم الملف في حقل "اسم الملف" ليكون UTF-8.
  3. إذا كان حقل "نظام التشغيل المحزم" يحتوي على القيمة 11 (NTFS، Windows)، وكانت قيمة حقل "إصدار المحزم" أكبر من أو تساوي 20، فاعتبر ترميز اسم الملف في حقل "اسم الملف" هو ترميز ANSI (Windows) المقابل لإعدادات النظام المحلية إذا كان من الممكن تحديده؛ وإلا، فاستخدم CP437.
  4. إذا كان حقل "نظام التشغيل المحزم" يحتوي على القيمة 0 (FAT، DOS)، وكانت قيمة حقل "إصدار المحزم" بين 25 و40 شاملة، فاعتبر ترميز اسم الملف في حقل "اسم الملف" في الرأس المحلي ترميز ANSI (Windows)، وفي حقل "اسم الملف" في الرأس المركزي ترميز OEM (DOS)، وهو ما يتوافق مع إعدادات النظام المحلية إذا كان من الممكن تحديدها؛ وإلا، فاستخدم CP437.
  5. في حالات أخرى، إذا كان حقل "حزم نظام التشغيل" يحتوي على القيمة 0 (FAT، DOS)، أو 6 (HPFS، OS/2)، أو 11 (NTFS، Windows)، فاعتبر ترميز اسم الملف في حقل "اسم الملف" ترميز OEM (DOS)، وهو ما يتوافق مع إعدادات النظام المحلية إذا كان من الممكن تحديدها؛ وإلا، فاستخدم CP437.
  6. في جميع الحالات الأخرى، ضع في اعتبارك ترميز اسم الملف في حقل "اسم الملف" باعتباره ترميز النظام الذي يعمل عليه برنامج فك الحزمة.

لم تنفذ بعض تطبيقات فك ضغط الملفات المضغوطة هذه الخوارزمية أو نفذتها جزئيًا فقط، ونتيجة لذلك، عند عرض محتويات الأرشيف أو استخراجه، رأى المستخدمون مجموعة فوضوية من الأحرف، المعروفة باسم "mojibake"، بدلاً من أحرف الأبجدية الوطنية. في عام 2016، تم حل هذه المشكلة في مدير الملفات والأرشيف far2l لنظامي Linux وBSD وMac. [63] في عام 2024، تمت إضافة حل مماثل [64] إلى إصدار 7zip المستخدم في توزيع Debian ومشتقاته، وإلى إصدار unzip المستخدم في توزيع Ubuntu ومشتقاته. [62]

إرث

هناك العديد من المعايير والتنسيقات الأخرى التي تستخدم "zip" كجزء من اسمها. على سبيل المثال، يختلف zip عن gzip ، والأخير مُعرَّف في IETF RFC  1952. يستخدم كل من zip وgzip بشكل أساسي خوارزمية DEFLATE للضغط. وبالمثل، يستخدم تنسيق ZLIB (IETF RFC  1950) أيضًا خوارزمية ضغط DEFLATE، ولكنه يحدد رؤوسًا مختلفة للتحقق من الأخطاء والتناسق. تشمل التنسيقات والبرامج الأخرى الشائعة ذات الأسماء المشابهة مع تنسيقات أصلية مختلفة 7-Zip و bzip2 و rzip .

مخاوف

إن عامل الضغط الأقصى النظري لتدفق DEFLATE الخام هو حوالي 1032 إلى واحد، [65] ولكن من خلال استغلال تنسيق ZIP بطرق غير مقصودة، يمكن إنشاء أرشيفات ZIP بنسب ضغط تبلغ مليارات إلى واحد. يتم فك ضغط هذه القنابل المضغوطة إلى أحجام كبيرة للغاية، مما يفوق سعة الكمبيوتر الذي يتم فك ضغطها عليه. [66]

انظر أيضا

مراجع

  1. ^ abc تسجيل نوع محتوى/نوع فرعي جديد لـ MIME - application/zip، IANA ، 20 يوليو 1993 ، تم الاسترجاع في 5 يناير 2012
  2. ^ "فيليب كاتز، رائد برمجيات الكمبيوتر، 37". صحيفة نيويورك تايمز1 مايو 2000 . تم الاسترجاع في 14 يونيو 2009 .
  3. ^ موراي، مات؛ تانينباوم، جيفري أ. (15 أغسطس 1997). "صعود وسقوط نجم البرمجيات؛ فيل كاتز أحب الكود - والخمور". صحيفة وول ستريت جورنال (الطبعة الإلكترونية). مؤرشف من الأصل في 4 مارس 2016.تم تحديث عنوان URL البديل في 2000-06-19.
  4. ^ "مكتبة الأفلام الوثائقية لـ BBS". www.bbsdocumentary.com . تم الاسترجاع في 25 سبتمبر 2020 .
  5. ^ ab Stay, Michael. "ZIP Attacks with Reduced Known Plaintext" (PDF) . Math.ucr.edu . مؤرشف من الأصل (PDF) في 28 أكتوبر 2017 . تم الاسترجاع في 9 سبتمبر 2017 .
  6. ^ Brian Livingston (8 September 2003), PKZip Must Open Up , تم استرجاعه في 5 January 2012 , تنسيق ملف ZIP متاح مجانًا في المجال العام ولا يمكن المطالبة به قانونيًا أو أخلاقيًا من قبل أي فرد أو كيان أو شركة
  7. ^ من أين أتت ملفات Zip على أية حال؟، Infinity Design Concepts, Inc. ، تم الاسترجاع في 5 يناير 2012
  8. ^ بيان صحفي، 1989 ، تم استرجاعه في 5 يناير 2012
  9. ^ مؤسسنا – فيل كاتز، PKWARE، تم أرشفته من الأصل في 1 أكتوبر 2010 ، تم استرجاعه في 5 يناير 2012
  10. ^ جاريث هورتون؛ روب وير؛ أليكس براون (2 نوفمبر 2010)، sc34-wg1 ، تم استرجاعه في 5 يناير 2012
  11. ^ ملاحظة تطبيق .ZIP ، تم استرجاعها في 20 يوليو 2012
  12. ^ ملف: APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 4.5 تم مراجعته: 11/01/2001، 3 ديسمبر 2001، تم أرشفته من الأصل في 3 ديسمبر 2001 ، تم استرجاعه في 21 أبريل 2012
  13. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP، الإصدار: 5.2 - إشعار بالتغيير، 16 يوليو 2003 ، تم الاسترجاع في 5 يناير 2012
  14. ^ ملف: APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 5.2 - إشعار بالتغيير - تمت المراجعة: 06/02/2003، 2 يوليو 2003، تم أرشفته من الأصل في 2 يوليو 2003 ، تم استرجاعه في 21 أبريل 2012
  15. ^ ملف: APPNOTE - مواصفات تنسيق ملف .ZIP الإصدار: 6.1.0 - إشعار بالتغيير - تمت المراجعة: 20/01/2004، 19 أغسطس 2004، تم أرشفته من الأصل في 19 أغسطس 2004 ، تم استرجاعه في 21 أبريل 2012
  16. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP، الإصدار: 6.2.0 - إشعار بالتغيير، 26 أبريل 2004 ، تم الاسترجاع في 5 يناير 2012
  17. ^ ab APPNOTE.TXT - مواصفات تنسيق ملف .ZIP، الإصدار: 6.3.0، 29 سبتمبر 2006 ، تم الاسترجاع في 5 يناير 2012
  18. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP، الإصدار: 6.3.1، 11 أبريل 2007 ، تم الاسترجاع في 25 يونيو 2018
  19. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.2، 28 سبتمبر 2007 ، تم الاسترجاع في 25 يونيو 2018
  20. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.3، 1 سبتمبر 2012 ، تم الاسترجاع في 25 يونيو 2018
  21. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.4، 1 أكتوبر 2014 ، تم الاسترجاع في 25 يونيو 2018
  22. ^ ab APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.5، 20 ديسمبر 2018 ، تم الاسترجاع في 3 يناير 2019
  23. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.6، 26 أبريل 2019 ، تم الاسترجاع في 3 يناير 2019
  24. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.7، 1 يونيو 2020 ، تم الاسترجاع في 6 يونيو 2020
  25. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.8، 15 يونيو 2020 ، تم الاسترجاع في 7 يوليو 2020
  26. ^ APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.9، 15 يوليو 2020 ، تم الاسترجاع في 8 أغسطس 2020
  27. ^ ab APPNOTE.TXT - مواصفات تنسيق ملف .ZIP الإصدار: 6.3.10، 1 نوفمبر 2022 ، تم الاسترجاع في 20 نوفمبر 2022
  28. ^ "مواصفات طرق الضغط الإضافية". WinZip . Mansfield, CT : WinZip Computing, SL 19 May 2009 . تم الاسترجاع في 24 May 2009 .
  29. ^ "ما هو ملف Zipx؟". Winzip: قاعدة المعرفة . Mansfield, CT : WinZip Computing, SL 13 أغسطس 2010. تم الاسترجاع في 17 أغسطس 2010 .
  30. ^ "ISO/IEC JTC 1/SC 34 — Document Description and Processing Languages" (PDF) . 12 أبريل 2010. مؤرشف من الأصل (PDF) في 12 مايو 2014. تم الاسترجاع 10 مايو 2014 .
  31. ^ "ملف حاوية المستندات ISO/IEC 21320-1:2015 - الجزء 1: الأساسي". ITTF. 2015.
  32. ^ eZine (1 يناير 2023). "تنسيق ملف .ZIP". Neperos.com .
  33. ^ abcdefgh "ملف: APPNOTE.TXT - مواصفات تنسيق ملف .ZIP: الإصدار: 6.3.4" (TXT) . Pkware.com . تم الاسترجاع في 9 سبتمبر 2017 .
  34. ^ "ملف: APPNOTE.TXT - مواصفات تنسيق ملف .ZIP". PKWARE Inc. تم الاسترجاع في 21 فبراير 2022 .
  35. ^ Adler, Mark. "كيف ترتبط zlib وgzip وzip؟ ما هو القاسم المشترك بينها وما هو الفرق بينها؟" . تم الاسترجاع في 27 نوفمبر 2018 .
  36. ^ "الأسئلة الشائعة حول zlib". zlib . تستخدم PKWare DCL تنسيق بيانات مضغوط مختلف تمامًا عن تنسيق PKZIP وzlib. ومع ذلك، يمكنك البحث في دليل contrib/blast الخاص بـ zlib للحصول على حل محتمل لمشكلتك.(مساهمة/إرسال)
  37. ^ سانديب (15 سبتمبر 2021). "كيفية حماية ملف مضغوط بكلمة مرور". Tech News Today .
  38. ^ "معلومات تشفير AES: مواصفات التشفير AE-1 وAE-2". Winzip.com . تم الاسترجاع في 9 سبتمبر 2017 .
  39. ^ "APPNOTE - PKZIP/SecureZIP - موقع دعم PKWARE". Pkware.com . تم الاسترجاع في 9 سبتمبر 2017 .
  40. ^ "ملف: APPNOTE.TXT - مواصفات تنسيق ملف .ZIP: الإصدار: 6.3.4" (TXT) . Pkware.cachefly.net . تم الاسترجاع في 9 سبتمبر 2017 .
  41. ^ "تغييرات QuaZIP". 22 يناير 2014. تم الاسترجاع في 25 يناير 2014 .
  42. ^ "تحسين بايثون: استخدام allowZip64=True افتراضيًا (3.4)" . تم الاسترجاع في 6 مايو 2014 .
  43. ^ Shen, Xueming (17 أبريل 2009). "ZIP64، تنسيق > 4G Zipfile، أصبح الآن مدعومًا". مدونة Xueming Shen . Sun Microsystems . تم الاسترجاع في 27 سبتمبر 2010 .
  44. ^ "تسجيل الدخول - حسابات Google". code.google.com . تم الاسترجاع في 9 سبتمبر 2017 .
  45. ^ "خطأ: توقيع رأس ملف الدليل المركزي غير صالح عند فك ضغط الملفات الكبيرة، مضغوط بواسطة نظام التشغيل Mac OS · العدد #69 · thejoshwolfe/yauzl". GitHub .
  46. ^ "استخراج ملف مضغوط كبير (50 جيجابايت) على نظام التشغيل Mac OS X" . تم الاسترجاع في 17 ديسمبر 2018 .
  47. ^ ماكميلان، روبرت (أغسطس 2008). "صورة يمكنها سرقة بيانات اعتمادك عبر الإنترنت". Infoworld.com . تم الاسترجاع في 9 سبتمبر 2017 .
  48. ^ "ZipArchive: تنسيق Zip64: تجاوز حدود أحجام الملفات وعدد الملفات والأجزاء". Artpol-software.com . تم الاسترجاع في 9 سبتمبر 2017 .
  49. ^ Rouault, Even (OSGeo). "ملف تعريف ZIP المحسن بالبحث (SOZip)" (markdown) . github.com . تم الاسترجاع في 11 يناير 2023 .
  50. ^ "WinZip – معلومات تشفير AES". Winzip.com . تم الاسترجاع في 9 سبتمبر 2017 .
  51. ^ McMillan, Robert (25 July 2003). "PKWare seeks patent for .zip file format". InfoWorld.com . مؤرشف من الأصل في 10 أغسطس 2003 . تم الاسترجاع في 16 يونيو 2008 .
  52. ^ "Software makers patch Zip tiff". News.com . تم الاسترجاع في 9 سبتمبر 2017 .
  53. ^ جون ليدن. "حل مشكلة تشفير ملفات Zip". Theregister.co.uk . تم الاسترجاع في 9 سبتمبر 2017 .
  54. ^ "معلومات تشفير AES: مواصفات التشفير AE-1 وAE-2". Winzip.com . تم الاسترجاع في 9 سبتمبر 2017 .
  55. ^ Maham Mukhtar (أغسطس 2017). "طريقتان لإصلاح خيار "تشفير المحتويات لتأمين البيانات" الذي يظهر باللون الرمادي في نظام التشغيل Windows 10". iTechtics . يتوفر EFS لجميع إصدارات Windows 10 باستثناء إصدار Windows 10 Home.
  56. ^ "لماذا توقف دعم المجلدات المضغوطة (مجلدات Zip) في نظام التشغيل Windows عند مطلع القرن؟". 15 مايو 2018.
  57. ^ كريستوفر هاربر (20 أبريل 2024). "إضافة دعم ملفات ZIP إلى Windows قبل 30 عامًا كاد أن يؤدي إلى طرد مبتكر مدير المهام". Tom's Hardware . تم الاسترجاع في 6 مايو 2024 .
  58. ^ ديف بلامر (8 يناير 2021). "06. التاريخ السري لمجلدات ZIP في نظام التشغيل Windows". يوتيوب . تم الاسترجاع في 6 مايو 2024 .
  59. ^ ديف بلامر (17 أبريل 2024). "كيف كاد إنشاء مجلدات ZIP لنظام التشغيل Windows أن يؤدي إلى طردي من Microsoft!". YouTube . تم الاسترجاع في 6 مايو 2024 .
  60. ^ Hall, Jim (15 أغسطس 2022). "كيفية هيكلة ملفات ODT". opensource.com . تم الاسترجاع في 9 يوليو 2023 .
  61. ^ abcd PKWARE (15 يوليو 2020). "APPNOTE.TXT - مواصفات تنسيق ملف .ZIP". PKWARE .
  62. ^ ab "ubuntu/+source/unzip - [بدون وصف]". git.launchpad.net .
  63. ^ "خطأ في معالجة الأرشيفات التي تحتوي على أحرف غير إنجليزية في أسماء الملفات/المجلدات المؤرشفة · العدد 114 · elfmz/far2l". GitHub . تم الاسترجاع في 23 مايو 2024 .
  64. ^ "استخدام إعدادات النظام المحلية لتحديد صفحة التعليمات البرمجية لأرشيفات zip القديمة (!8) ​​· طلبات الدمج · Debian / 7zip · GitLab". GitLab . 22 مايو 2024 . تم الاسترجاع في 23 مايو 2024 .
  65. ^ "zlib Technical Details" . تم الاسترجاع في 10 يوليو 2019 .
  66. ^ سميث، إيرني (10 يوليو 2019). "القنبلة البريدية الأكثر ذكاءً على الإطلاق تنفجر بملف بحجم 46 ميجا بايت إلى 4.5 بيتابايت". Motherboard . Vice Media . تم الاسترجاع في 10 يوليو 2019 .
  • ملاحظة حول تطبيق .ZIP تم أرشفته في 17 يوليو 2017 على صفحة Wayback Machine الخاصة بملف .ZIP الحالي والتاريخي الخاص بـ PKWARE
  • ISO/IEC 21320-1:2015 — ملف حاوية المستندات — الجزء 1: الأساسي
  • ملفات ZIP: التاريخ والشرح والتنفيذ
  • الانكماش والتقليل والانكماش: طرق الضغط التقليدية
  • نسخة مطابقة لـ APPNOTE.TXT
  • هيكل ملف PKZip مواصفات التنسيق والجداول الرسومية
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=ZIP_(file_format)&oldid=1252552350"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate