ไฟล์เก็บถาวร GZIP (.gz)

IETF มาตรฐาน

Gzip (GZ) คือยูทิลิตี้การบีบอัดและรูปแบบไฟล์มาตรฐานของ GNU ซึ่งใช้งานอย่างแพร่หลายในระบบปฏิบัติการ Unix และเซิร์ฟเวอร์เว็บ HTTP สำหรับการบีบอัดไฟล์และทรัพยากรเว็บอย่างรวดเร็ว.

แปลง TAR เป็น GZ

ตัวแปลงจาก TAR เป็น GZ ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ

ตรวจสอบไฟล์และข้อมูลเมตา

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GZ โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
รับประกันความเป็นส่วนตัวโดยไม่มีการส่งข้อมูลผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวระดับไบต์

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GZ โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

1F 8B 08

การแสดงผลรูปแบบ ASCII: ..\x08

มาตรฐาน: IETF RFC 1952

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์ส่วนหัว 10 ไบต์ (magic 0x1F 0x8B, method 8, flags, mtime, OS) ตามด้วยสตรีม DEFLATE และส่วนท้าย 8 ไบต์
การบีบอัดอัลกอริทึม DEFLATE (หน้าต่างเลื่อน LZ77 + การเข้ารหัส Huffman)
การจัดลำดับไบต์จำนวนเต็มในส่วนหัวและส่วนท้ายแบบ Little-Endian
พื้นที่สีไม่เกี่ยวข้อง (คอนเทนเนอร์ไฟล์เก็บถาวร)
ช่องสัญญาณและโครงสร้างสตรีมไบต์ที่บีบอัดสำหรับไฟล์เดียว
ขนาดสูงสุดบันทึกขนาดหลังคลายการบีบอัดแบบ modulo 2^32 (รองรับความยาวสตรีมไม่จำกัด)
ความโปร่งใสรักษาข้อมูลโดยไม่สูญเสียและตรงระดับบิต 100%
การสตรีมและแบบโปรเกรสซีฟเล่นสตรีมผ่าน pipe และเครือข่าย HTTP ตามลำดับในรอบเดียว

ตารางเปรียบเทียบทางเทคนิค: GZ กับคู่แข่ง

คุณลักษณะทางเทคนิคGZ (ปัจจุบัน)BZ2BROTLIZSTD
ความเร็วในการคลายการบีบอัดเร็ว (~300 MB/s)ช้า (~40 MB/s)เร็วมาก (~400 MB/s)เร็วสุดขีด (>1.5 GB/s)
ใช้งานอย่างแพร่หลายบนเว็บเบราว์เซอร์และเซิร์ฟเวอร์ทั้งหมด 100%ไม่รองรับบนเว็บเบราว์เซอร์รองรับผ่าน HTTPS ในเบราว์เซอร์ทั้งหมดการรองรับจากเบราว์เซอร์และเซิร์ฟเวอร์กำลังเพิ่มขึ้น
การจัดเก็บไฟล์หลายไฟล์ในแพ็กเกจเดียวต้องใช้คอนเทนเนอร์ TAR (.tar.gz)ต้องใช้คอนเทนเนอร์ TAR (.tar.bz2)สตรีมดิบหรือคอนเทนเนอร์กำหนดเองต้องใช้คอนเทนเนอร์ TAR (.tar.zst)
การตรวจสอบค่าความถูกต้องCRC 32 บิต (CRC-32)CRC 32 บิตต่อบล็อกไม่มีในสตรีมxxHash 64 บิต

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

ข้อผิดพลาดในการแตกไฟล์: 'gzip: stdin: unexpected end of file'

สาเหตุหลัก: การสิ้นสุดการถ่ายโอนไฟล์ก่อนกำหนดทำให้ตัดสตรีม DEFLATE หรือส่วนท้าย CRC32 ขนาด 8 ไบต์

การกู้คืน: ดึงข้อมูลบางส่วนโดยใช้ 'gzip -d --keep broken.gz' หรือ File2File.app Gzip Extractor

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

ตัววิเคราะห์ Gzip ประมวลผลส่วนหัวที่ผู้ใช้ควบคุมและบิตสตรีม DEFLATE ซึ่งต้องได้รับการปกป้องจากระเบิดการคลายการบีบอัด

เวกเตอร์การโจมตีที่ทราบ

  • ระเบิดการคลายการบีบอัด (zip bomb) ที่ขยายข้อมูล Gzip ขนาดเมกะไบต์ให้กลายเป็นพื้นที่ดิสก์หลายร้อยจิกะไบต์
  • บัฟเฟอร์ล้นเมื่ออ่านสตริงชื่อไฟล์ต้นฉบับที่เป็นตัวเลือกจากส่วนหัว
  • จำนวนเต็มล้นระหว่างการเปรียบเทียบการตรวจสอบ CRC 32 บิต

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: กำหนดโควต้าการคลายการบีบอัดอย่างเข้มงวดและเพดานหน่วยความจำสูงสุดในบริการรับข้อมูลอัตโนมัติ

ประวัติความเป็นมาและเหตุการณ์สำคัญ

1996IETF กำหนดข้อกำหนดรูปแบบไฟล์ Gzip เป็น RFC 1952 อย่างเป็นทางการ
1993ถูกนำมาใช้โดยโครงการ GNU เพื่อแทนที่ยูทิลิตี้ 'compress' แบบกรรมสิทธิ์ของ Unix (ไฟล์ .Z)
1992Jean-loup Gailly และ Mark Adler สร้าง Gzip เป็นเครื่องมือบีบอัดที่ปลอดสิทธิบัตรสำหรับขบวนการซอฟต์แวร์เสรี

ข้อได้เปรียบและจุดเด่นสำคัญ

  • เกณฑ์มาตรฐานสากลสำหรับการบีบอัดเว็บ HTTP ('Content-Encoding: gzip') ที่รองรับโดยไคลเอนต์เว็บ 100%
  • เก็บรักษาเวลาที่แก้ไขไฟล์ต้นฉบับและชื่อไฟล์ต้นฉบับ (หากมี) ไว้ในส่วนหัวขนาด 10 ไบต์
  • การคลายการบีบอัดใช้หน่วยประมวลผล (CPU) น้อย จึงทำงานได้อย่างราบรื่นบนอุปกรณ์มือถือและเราเตอร์ที่ใช้พลังงานต่ำ

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • การบีบอัดไฟล์เดี่ยวเท่านั้น: ไม่สามารถบีบอัดไฟล์หรือไดเรกทอรีหลายไฟล์ได้โดยไม่ต้องรวมเข้ากับคอนเทนเนอร์ TAR ก่อน
  • อัตราส่วนการบีบอัดต่ำกว่าอัลกอริทึมสมัยใหม่ เช่น Brotli และ Zstandard บนข้อความเว็บสมัยใหม่
  • ฟิลด์ขนาดข้อมูลก่อนบีบอัดที่ส่วนท้ายมีขนาด 32 บิตและใช้ค่า modulo 2^32 ทำให้เกิดข้อผิดพลาดในการแสดงผลเมื่อไฟล์มีขนาดใหญ่กว่า 4 GB

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • ไบต์เมจิก 0x1F 0x8B ถูกเลือกเพราะ 0x1F เป็นไบต์แรกของไฟล์ 'compress' บน Unix ในอดีต ส่วน 0x8B ใช้ระบุ Gzip
  • เว็บไซต์มากกว่า 80% บนอินเทอร์เน็ตใช้การบีบอัด Gzip เพื่อส่งหน้าเว็บไปยังเบราว์เซอร์
  • Jean-loup Gailly เขียนโค้ดการบีบอัดในขณะที่ Mark Adler เขียนโค้ดการคลายการบีบอัด (inflate); ทั้งคู่ได้รับรางวัล ACM Software System Award

คำถามทางเทคนิคที่พบบ่อย

ทำไมฉันจึงไม่สามารถบีบอัดโฟลเดอร์ด้วย Gzip ได้?

Gzip ถูกออกแบบมาเพื่อบีบอัดสตรีมไบต์เดี่ยวๆ การจะบีบอัดโฟลเดอร์ ระบบยูนิกซ์ (Unix) จะรวมโฟลเดอร์เป็นไฟล์ .tar เดียวเสียก่อน แล้วจึงบีบอัดด้วย Gzip เพื่อสร้างเป็นไฟล์ .tar.gz

ความแตกต่างระหว่าง .gz และ .zip คืออะไร?

.zip เป็นรูปแบบไฟล์จัดเก็บ (archive format) ที่รวบรวมไฟล์หลายไฟล์เข้าด้วยกันพร้อมดัชนีไดเรกทอรี ส่วน .gz จะบีบอัดไฟล์เดี่ยวๆ เท่านั้น และมักใช้คู่กับ tar บนระบบยูนิกซ์ (Unix)

ฉันจะคลายไฟล์ .gz บน Windows หรือ Mac ได้อย่างไร?

ใช้ File2File.app เพื่อคลายไฟล์ .gz ทันทีในเว็บเบราว์เซอร์ของคุณโดยไม่ต้องติดตั้งซอฟต์แวร์ใดๆ