Αρχειοθήκη GZIP (.gz)
IETF ΤυπικόΤο Gzip (GZ) είναι το τυπικό βοηθητικό πρόγραμμα συμπίεσης και ο μορφότυπος αρχείων του GNU, το οποίο αναπτύσσεται καθολικά σε λειτουργικά συστήματα Unix και διακομιστές ιστού HTTP για γρήγορη συμπίεση αρχείων και στοιχείων ιστού.
Μετατροπή TAR σε GZ
Δωρεάν μετατροπέας από TAR σε GZ εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.
Επιθεώρηση & Μεταδεδομένα
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GZ ελέγχοντας την αρχική δυαδική ακολουθία byte:
Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GZ ελέγχοντας την αρχική δυαδική ακολουθία byte:
ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):
1F 8B 08ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: ..\x08
Τυποποίηση: IETF RFC 1952
Τεχνικές Προδιαγραφές
| Αρχιτεκτονική Περιέκτη | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| Συμπίεση | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| Endianness Byte | Little-Endian header and footer integers |
| Χρωματικοί Χώροι | N/A (Archive Container) |
| Κανάλια & Δομή | Single-file compressed byte stream |
| Μέγιστες Διαστάσεις | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| Διαφάνεια | 100% bit-exact lossless data preservation |
| Streaming & Προοδευτική Φόρτωση | Sequential single-pass streaming playback over pipes and HTTP networks |
Τεχνικός Πίνακας Σύγκρισης: GZ έναντι Ανταγωνιστών
| Τεχνικό χαρακτηριστικό | GZ (Τρέχον) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Ταχύτητα Αποσυμπίεσης | Γρήγορη (~300 MB/s) | Αργή (~40 MB/s) | Πολύ Γρήγορη (~400 MB/s) | Εξαιρετικά Γρήγορη (>1.5 GB/s) |
| Καθολική Υιοθέτηση στον Ιστό | 100% όλων των browsers & servers | Μηδενική υποστήριξη από web browser | Υποστηρίζεται μέσω HTTPS σε όλους τους browsers | Αυξανόμενη υποστήριξη σε browser & server |
| Συσκευασία Πολλαπλών Αρχείων | Απαιτεί δοχείο TAR (.tar.gz) | Απαιτεί δοχείο TAR (.tar.bz2) | Ακατέργαστη ροή ή προσαρμοσμένος περιέκτης | Απαιτεί δοχείο TAR (.tar.zst) |
| Επαλήθευση Αθροίσματος Ελέγχου | CRC 32-bit (CRC-32) | CRC 32-bit ανά μπλοκ | Κανένα ενσωματωμένο στη ροή | xxHash 64-bit |
Συνηθισμένοι Τρόποι Διαφθοράς & Οδηγός Ανάκτησης Hex
Σφάλμα εξαγωγής: 'gzip: stdin: unexpected end of file'.
Βασική Αιτία: Πρόωρη διακοπή μεταφοράς αρχείου που έκοψε τη ροή DEFLATE ή το υποσέλιδο CRC32 8-byte.
Ανάκτηση: Εξάγετε τμηματικά περιεχόμενα χρησιμοποιώντας την εντολή 'gzip -d --keep broken.gz' ή το File2File Gzip Extractor.
Ανάλυση Ασφάλειας & Διανύσματα Επίθεσης Parser
Οι αναλύτες Gzip επεξεργάζονται κεφαλίδες που ελέγχονται από τον χρήστη και ροές bit DEFLATE, οι οποίες πρέπει να προστατεύονται από βόμβες αποσυμπίεσης.
Γνωστά διανύσματα επίθεσης
- Βόμβα αποσυμπίεσης (zip bomb) που επεκτείνει megabyte δεδομένων Gzip σε εκατοντάδες gigabyte χώρου στο δίσκο.
- Υπερχείλιση buffer (buffer overflow) κατά την ανάγνωση προαιρετικής συμβολοσειράς ονόματος αρχείου από την κεφαλίδα.
- Υπερχείλιση ακεραίου κατά τη σύγκριση ελέγχου CRC 32-bit.
Βέλτιστες αμυντικές πρακτικές:
Ιστορική Αναδρομή & Ορόσημα
Κύρια Πλεονεκτήματα
- Το παγκόσμιο σημείο αναφοράς για συμπίεση ιστού HTTP ('Content-Encoding: gzip') που υποστηρίζεται από το 100% των προγραμμάτων περιήγησης ιστού.
- Διατηρεί τα αρχικά χρονικά σήματα τροποποίησης αρχείων και τα προαιρετικά αρχικά ονόματα αρχείων εντός της κεφαλίδας 10 byte.
- Ελαφρύ αποτύπωμα CPU κατά την αποσυμπίεση, εκτελούμενο ομαλά σε κινητές συσκευές χαμηλής ισχύος και δρομολογητές (routers).
Τεχνικοί Περιορισμοί & Μειονεκτήματα
- Συμπίεση μόνο ενός αρχείου: δεν μπορεί να συμπιεσέι πολλαπλά αρχεία ή καταλόγους χωρίς πρώτα να τα ομαδοποιήσει σε ένα δοχείο TAR.
- Ο λόγος συμπίεσης είναι χαμηλότερος από σύγχρονους αλγορίθμους όπως το Brotli και το Zstandard σε σύγχρονο κείμενο ιστού.
- Το πεδίο μεγέθους μη συμπιεσμένων δεδομένων στο υποσέλιδο είναι 32-bit modulo 2^32, προκαλώντας σφάλματα εμφάνισης υπερχείλισης (rollover) σε αρχεία μεγαλύτερα από 4 GB.
Ενδιαφέροντα Τεχνικά Στοιχεία
- Τα μαγικά byte 0x1F 0x8B επιλέχθηκαν επειδή το 0x1F ήταν ιστορικά το πρώτο byte των αρχείων 'compress' του Unix, ενώ το 0x8B ταυτοποιούσε το Gzip.
- Πάνω από το 80% όλων των ιστοσελίδων στο διαδίκτυο χρησιμοποιούν συμπίεση Gzip για την παράδοση ιστοσελίδων σε προγράμματα περιήγησης.
- Ο Jean-loup Gailly έγραψε τον κώδικα συμπίεσης ενώ ο Mark Adler έγραψε τον κώδικα αποσυμπίεσης (inflate). Και οι δύο έλαβαν το βραβείο ACM Software System Award.
Συχνές Τεχνικές Ερωτήσεις
Γιατί δεν μπορώ να συμπιέσω έναν φάκελο με το Gzip;
Το Gzip σχεδιάστηκε για να συμπιέζει μια ενιαία ροή byte. Για να συμπιέσουν έναν φάκελο, τα συστήματα Unix πρώτα ομαδοποιούν τον φάκελο σε ένα ενιαίο αρχείο .tar και στη συνέχεια τον συμπιέζουν με Gzip για να δημιουργήσουν ένα αρχείο .tar.gz.
Ποια είναι η διαφορά μεταξύ .gz και .zip;
Το .zip είναι μια μορφή αρχειοθήκης που πακετάρει πολλαπλά αρχεία μαζί με ένα ευρετήριο καταλόγου. Το .gz συμπιέζει μόνο ένα μεμονωμένο αρχείο και συνήθως συνδυάζεται με το tar σε συστήματα Unix.
Πώς μπορώ να αποσυμπιέσω ένα αρχείο .gz σε Windows ή Mac;
Χρησιμοποιήστε το File2File.app για να αποσυμπιέσετε άμεσα αρχεία .gz απευθείας στο πρόγραμμα περιήγησής σας χωρίς καμία εγκατάσταση λογισμικού.
Σχετικά ζεύγη μετατροπής GZ
Η μετατροπή ενός αρχείου TAR σε αρχείο GZIP περιβάλλει μια ασυμπίεστη συλλογή αρχείων σε μια ενιαία συμπιεσμένη ροή χρησιμοποιώντας τον αλγόριθμο ασυμπίεστης συμπίεσης DEFLATE για τη δραματική μείωση του μεγέθους του αρχείου.
Η μετατροπή ενός συμπιεσμένου αρχείου GZIP σε αρχείο TAR αφαιρεί το στρώμα συμπίεσης για να αποκαλύψει την ακατέργαστη, ασυμπίεστη συλλογή αρχείων και φακέλων.