Raw DEFLATE (.deflate)

IETF Τυπικό

Το DEFLATE είναι ο ευρέως χρησιμοποιούμενος αλγόριθμος συμπίεσης δεδομένων χωρίς απώλειες στην ιστορία της πληροφορικής, τροφοδοτώντας αρχεία ZIP, ροές GZIP, εικόνες PNG και συμπίεση ιστού HTTP για πάνω από τρεις δεκαετίες.

Μετατροπή GZIP σε DEFLATE

Δωρεάν μετατροπέας από GZIP σε DEFLATE εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.

Επιθεώρηση & Μεταδεδομένα

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία DEFLATE ελέγχοντας την αρχική δυαδική ακολουθία byte:

Επιλέξτε ή αποθέστε αρχεία εδώ

Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας

ή επικόλληση Ctrl+V
Εγγύηση Απορρήτου Μηδενικής Μετάδοσης Δικτύου: Δεν μεταφορτώνεται κανένα byte σε εξωτερικούς διακομιστές. Όλη η επεξεργασία γίνεται τοπικά στο απομονωμένο περιβάλλον του προγράμματος περιήγησής σας.

Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία DEFLATE ελέγχοντας την αρχική δυαδική ακολουθία byte:

ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):

Δεν υπάρχει σταθερή υπογραφή για ακατέργαστο DEFLATE· οι ροές με περίβλημα zlib αρχίζουν με μεταβλητά byte CMF/FLG

ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: Δεν υπάρχει σταθερή υπογραφή

Τυποποίηση: IETF RFC 1951 / RFC 1950 (zlib)

Τεχνικές Προδιαγραφές

Αρχιτεκτονική ΠεριέκτηΑκατέργαστη ροή bit RFC 1951 ή ροή περιτυλιγμένη σε zlib RFC 1950 με κεφαλίδα 2 byte και άθροισμα ελέγχου Adler-32
ΣυμπίεσηΣυρόμενο λεξικό LZ77 (παράθυρο έως 32 KB) σε συνδυασμό με στατική ή δυναμική κωδικοποίηση εντροπίας Huffman
Σειρά byte (endianness)Διάταξη συσκευασίας bit μικρής διάταξης (Little-Endian)
Χρωματικοί ΧώροιN/A (Data Compression Stream)
Κανάλια & ΔομήΡοή ακατέργαστων δυαδικών ή κειμενικών δεδομένων
Μέγιστες ΔιαστάσειςΑπεριόριστο μήκος ροής
Διαφάνεια100% αναπαραγωγή δεδομένων χωρίς απώλειες και με ακρίβεια bit
Ροή δεδομένων και προοδευτική φόρτωσηΡοή bit βασισμένη σε μπλοκ, με υποστήριξη συνεχούς μετάδοσης byte αυθαίρετου μήκους

Τεχνικός Πίνακας Σύγκρισης: DEFLATE έναντι Ανταγωνιστών

Τεχνικό χαρακτηριστικόDEFLATE (Τρέχον)GZBROTLIZSTD
ΤυποποίησηIETF RFC 1951 (Raw) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Κυλιόμενο ΠαράθυροΜέγιστο 32 kilobytesΜέγιστο 32 kilobytesΈως 16 megabytesΈως 2 gigabytes
Λειτουργία Αθροίσματος ΕλέγχουAdler-32 (στο περιτύλιγμα zlib)CRC-32 (στο περιτύλιγμα gzip)Δεν υπάρχει ενσωματωμένο άθροισμα ελέγχου στη ροήxxHash64 (γρήγορο hash 64-bit)
Καθημερινή ΧρήσηΕικόνες PNG, ροές PDF, ZIPUnix .tar.gz, HTTP gzipΓραμματοσειρές ιστού (WOFF2), HTTP brΠυρήνας Linux, βάσεις δεδομένων, παιχνίδια

Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων

Η αποσυμπίεση αποτυγχάνει με το μήνυμα 'Z_DATA_ERROR: incorrect data check'.

Βασική Αιτία: Ασυμφωνία στο άθροισμα ελέγχου Adler-32 4-byte στο τέλος της ροής που είναι τυλιγμένη σε zlib.

Ανάκτηση: Παρακάμψτε την επαλήθευση Adler-32 χρησιμοποιώντας ακατέργαστη αποσυμπίεση (raw inflate) ή επιδιορθώστε με το File2File.app Deflate Recovery.

Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή

Οι αναλύτες (parsers) DEFLATE πρέπει να επικυρώνουν αυστηρά τους κωδικούς δόμησης δέντρου Huffman για να αποτρέψουν εγγραφές δεικτών εκτός ορίων.

Γνωστά διανύσματα επίθεσης

  • Ελλιπείς ή υπερπλήρεις δυναμικοί πίνακες μήκους bit δέντρου Huffman που προκαλούν μη έγκυρες αναγνώσεις μνήμης.
  • Βόμβα αποσυμπίεσης (zip bomb) που επεκτείνει μικροσκοπικά ωφέλιμα φορτία σε εκατοντάδες gigabyte RAM.
  • Υπερανάγνωση buffer (buffer over-read) σε μη επικυρωμένους κωδικούς απόστασης κυλιόμενου παραθύρου.

Βέλτιστες αμυντικές πρακτικές: Επιβολή περιορισμένων ορίων μέγιστης κατανομής μνήμης και ανώτατων ορίων λόγου επέκτασης κατά την αποσυμπίεση.

Ιστορική Αναδρομή & Ορόσημα

1996Ο Peter Deutsch τυποποιεί το DEFLATE ως IETF RFC 1951 και το zlib ως RFC 1950.
1995Οι Jean-loup Gailly και Mark Adler κυκλοφορούν το zlib.
1991Ο Phil Katz εφευρίσκει το DEFLATE για το PKZIP 2.0 προς αντικατάσταση των παλαιότερων αλγορίθμων Implode και Reduce.

Κύρια Πλεονεκτήματα

  • Το DEFLATE έχει υλοποιηθεί ευρέως σε βιβλιοθήκες λογισμικού και μορφότυπους αρχείων, αν και η διαθέσιμη υποστήριξη εξαρτάται από το περιβάλλον εκτέλεσης και την εφαρμογή.
  • Οι προδιαγραφές του DEFLATE μπορούν να υλοποιηθούν ελεύθερα· η αδειοδότηση και η υποστήριξη εξαρτώνται από τη συγκεκριμένη υλοποίηση λογισμικού.
  • Γρήγορη αποσυμπίεση με ελάχιστο αποτύπωμα μνήμης (απαιτεί μόνο 32 KB μνήμης κυλιόμενου παραθύρου).

Τεχνικοί Περιορισμοί & Μειονεκτήματα

  • Το κυλιόμενο παράθυρο (sliding window) περιορίζεται στα 32 KB, μειώνοντας την αποτελεσματικότητα συμπίεσης σε μεγάλα αρχεία με απομακρυσμένες επικαλύψεις.
  • Χαμηλότεροι λόγοι συμπίεσης σε σύγχρονα στοιχεία ιστού σε σύγκριση με νεότερους αλγορίθμους όπως το Brotli και το Zstandard.
  • Οι ακατέργαστες ροές DEFLATE στερούνται μεταδεδομένων αυτοπεριγραφής ή πλαισίου περιέκτη (container) χωρίς τα περιτυλίγματα zlib ή gzip.

Ενδιαφέροντα Τεχνικά Στοιχεία

  • Ο Phil Katz εφηύρε το DEFLATE αφού μηνύθηκε από την Unisys για τον κατοχυρωμένο με δίπλωμα ευρεσιτεχνίας αλγόριθμο LZW που χρησιμοποιούνταν στα πρώτα βοηθητικά προγράμματα PKARC.
  • Τα τυπικά byte κεφαλίδας zlib '78 9C' υποδεικνύουν προεπιλεγμένη συμπίεση, το '78 01' χαμηλή συμπίεση και το '78 DA' μέγιστη συμπίεση.
  • Το PNG χρησιμοποιεί το DEFLATE για τη ροή δεδομένων εικόνας, όπως ορίζεται στις προδιαγραφές του μορφότυπου PNG.

Συχνές Τεχνικές Ερωτήσεις

Ποια είναι η διαφορά μεταξύ DEFLATE, zlib και gzip;

Το DEFLATE είναι ο ακατέργαστος αλγόριθμος συμπίεσης (RFC 1951). Το Zlib τυλίγει το DEFLATE με κεφαλίδα 2 byte και άθροισμα ελέγχου Adler-32 (RFC 1950). Το Gzip τυλίγει το DEFLATE με μεταδεδομένα αρχείου και άθροισμα ελέγχου CRC-32 (RFC 1952).

Γιατί το PNG χρησιμοποιεί το DEFLATE;

Η μορφή PNG δημιουργήθηκε το 1995 για να αντικαταστήσει το GIF χωρίς τη χρήση κατοχυρωμένων με δίπλωμα ευρεσιτεχνίας αλγορίθμων LZW, επιλέγοντας το ανοιχτό, χωρίς δικαιώματα DEFLATE για συμπίεση.

Πώς μπορώ να αποσυμπιέσω ένα ακατέργαστο αρχείο .deflate;

Μπορείτε να αποσυμπιέσετε ακατέργαστες ροές byte DEFLATE ή zlib σε πρωτότυπα ασυμπίεστα αρχεία χρησιμοποιώντας το File2File.app απευθείας στο πρόγραμμα περιήγησής σας.