Αρχειοθήκη BZIP2 (.bz2)

Bzip2 Τυπικό

Το Bzip2 (BZ2) είναι ένα κλασικό, απαλλαγμένο από πατέντες βοηθητικό πρόγραμμα συμπίεσης και μορφότυπος αρχείων Unix που δημιουργήθηκε από τον Julian Seward. Χρησιμοποιεί τον μετασχηματισμό Burrows-Wheeler για να επιτύχει σημαντικά πιο σφιχτή συμπίεση από το κλασικό Gzip.

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

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

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

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

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

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

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

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

42 5A 68

ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: BZh

Τυποποίηση: Bzip2 Open Source Standard

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

Αρχιτεκτονική ΠεριέκτηΚεφαλίδα ροής («BZh» + ψηφίο μεγέθους μπλοκ 1-9), ακολουθούμενη από συμπιεσμένα μπλοκ δεδομένων και CRC 32 bit
ΣυμπίεσηΜετασχηματισμός Burrows-Wheeler (BWT), μετασχηματισμός Move-to-Front (MTF) και κωδικοποίηση Huffman
Σειρά byte (endianness)Πλαισίωση ροής bit μεγάλης διάταξης (Big-Endian)
Χρωματικοί ΧώροιN/A (Byte Compression Stream)
Κανάλια & ΔομήΣυμπιεσμένη ροή byte ενός αρχείου
Μέγιστες ΔιαστάσειςΑπεριόριστο μήκος ροής (υποστηρίζει αρχεία αυθαίρετου μεγέθους)
Διαφάνεια100% διατήρηση δεδομένων χωρίς απώλειες και με ακρίβεια bit
Ροή δεδομένων και προοδευτική φόρτωσηΑκολουθιακή μετάδοση μπλοκ προς μπλοκ με ανεξάρτητους ελέγχους αθροίσματος CRC για κάθε μπλοκ

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

Τεχνικό χαρακτηριστικόBZ2 (Τρέχον)GZXZZSTD
Βασικός ΑλγόριθμοςΜετασχηματισμός Burrows-Wheeler (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Συμπίεση έναντι Gzip10% - 20% μικρότερο από το GzipΠρότυπο βάσης20% - 30% μικρότερο από το Gzip10% - 20% μικρότερο από το Gzip
Ταχύτητα ΑποσυμπίεσηςΑργή (~30-50 MB/s)Γρήγορη (~300 MB/s)Μέτρια (~100 MB/s)Εξαιρετικά γρήγορη (>1.5 GB/s)
Άθροισμα Ελέγχου ΜπλοκCRC 32-bit ανά μπλοκCRC32 ενιαίας ροήςCRC64 ροήςxxHash64 ροής

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

Η εξαγωγή διακόπτεται με το μήνυμα 'bzip2: Data integrity error when decompressing'.

Βασική Αιτία: Αλλοιωμένο (flipped) bit στο συμπιεσμένο μπλοκ που προκαλεί αποτυχία επικύρωσης CRC32 στον αντίστροφο πίνακα μετάθεσης BWT.

Ανάκτηση: Χρησιμοποιήστε το βοηθητικό πρόγραμμα 'bzip2recover' για να διασώσετε ανέπαφα μπλοκ που περιβάλλουν τον κατεστραμμένο τομέα.

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

Οι υλοποιήσεις του Bzip2 περιλαμβάνουν σύνθετη ταξινόμηση ροής bit και ανάλυση πινάκων Huffman, οι οποίες ιστορικά παρουσίασαν σφάλματα υπερχείλισης ακεραίων (integer overflow).

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

  • Υπερχείλιση ακεραίου στην κατανομή του πίνακα ταξινόμησης BWT (π.χ. CVE-2016-3189).
  • Εγγραφή εκτός ορίων (out-of-bounds write) κατά τη σύνταξη του πίνακα αποκωδικοποίησης Huffman.
  • Άρνηση εξυπηρέτησης (DoS) μέσω παθολογικών μοτίβων εισόδου που προκαλούν χειρότερης περίπτωσης τετραγωνικούς χρόνους ταξινόμησης BWT.

Βέλτιστες αμυντικές πρακτικές: Αποκωδικοποιήστε αρχεία BZ2 χρησιμοποιώντας αποκωδικοποιητές WASM ασφαλείς για τη μνήμη με επιβεβλημένα όρια μνήμης.

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

2019Ο Federico Mena Quintero εκσυγχρονίζει τη συντήρηση της βάσης κώδικα του bzip2 στο πλαίσιο του bzip3 και σύγχρονων πρωτοβουλιών ανοιχτού κώδικα.
2000Κυκλοφορεί η έκδοση 1.0, σταθεροποιώντας τον μορφότυπο bzip2 σε όλες τις διανομές Linux και τους διαχειριστές πακέτων.
1996Ο Julian Seward κυκλοφορεί το bzip2 0.15 για να αντικαταστήσει τον προγενέστερο μορφότυπο bzip που αντιμετώπιζε ζητήματα διπλωμάτων ευρεσιτεχνίας.

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

  • Ξεπερνά σταθερά το κλασικό Gzip κατά 10% έως 20% σε αρχεία tarball πηγαίου κώδικα, αρχεία καταγραφής συστήματος (logs) και βάσεις δεδομένων κειμένου.
  • Η ανεξάρτητη αρχιτεκτονική μπλοκ (100k έως 900k) περιλαμβάνει αθροίσματα ελέγχου CRC 32-bit ανά μπλοκ για ισχυρό έλεγχο ακεραιότητας.
  • Διατίθεται εγγενώς σε πολλές διανομές Linux, BSD και macOS· η συμπερίληψή του διαφέρει ανά διανομή.

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

  • Σημαντικά πιο αργές ταχύτητες συμπίεσης και αποσυμπίεσης σε σύγκριση με σύγχρονους αλγορίθμους όπως το Zstandard.
  • Συμπίεση μόνο ενός αρχείου: απαιτείται συνδυασμός με TAR (.tar.bz2) για τη συσκευασία πολλαπλών αρχείων ή καταλόγων.
  • Υψηλότερη χρήση CPU κατά την αποσυμπίεση σε σύγκριση με το Gzip ή το Zstd.

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

  • Τα μαγικά byte 'BZh' σημαίνουν 'Burrows-Wheeler Zip Huffman', και ακολουθούνται από ένα ψηφίο (από το '1' έως το '9') που υποδηλώνει το μέγεθος του μπλοκ σε εκατοντάδες kilobyte (π.χ. 'BZh9' = 900 KB).
  • Ο πηγαίος κώδικας του πυρήνα Linux διανεμόταν αποκλειστικά σε μορφότυπο .tar.bz2 για πάνω από μία δεκαετία πριν μεταναστεύσει στο .xz.
  • Ο μετασχηματισμός Burrows-Wheeler δεν συμπιέζει τα δεδομένα απευθείας. Αναδιατάσσει τη σειρά των χαρακτήρων ώστε τα πανομοιότυπα γράμματα να ομαδοποιούνται.

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

Ποια είναι η διαφορά μεταξύ .gz και .bz2;

Το .bz2 χρησιμοποιεί τον μετασχηματισμό Burrows-Wheeler για να επιτύχει μικρότερα μεγέθη αρχείων από το .gz, αλλά χρειάζεται περισσότερος χρόνος για τη συμπίεση και την αποσυμπίεση.

Γιατί το bzip2 διαθέτει την εντολή 'bzip2recover';

Επειδή το bzip2 συμπιέζει δεδομένα σε ανεξάρτητα μπλοκ 900 KB, καθένα με το δικό του CRC, το bzip2recover μπορεί να εξαγάγει ανέπαφα μπλοκ ακόμα κι αν μέρος του αρχείου είναι κατεστραμμένο.

Πώς μπορώ να εξαγάγω ένα αρχείο .tar.bz2;

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