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

Bzip2 Τυπικό

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

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

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

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

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

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

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

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

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

42 5A 68

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

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

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

Αρχιτεκτονική ΠεριέκτηStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
ΣυμπίεσηBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Endianness ByteBig-Endian bitstream framing
Χρωματικοί ΧώροιN/A (Byte Compression Stream)
Κανάλια & ΔομήSingle-file compressed byte stream
Μέγιστες ΔιαστάσειςUnbounded stream length (supports arbitrary file sizes)
Διαφάνεια100% bit-exact lossless data preservation
Streaming & Προοδευτική ΦόρτωσηSequential block-by-block streaming with independent per-block CRC checksums

Τεχνικός Πίνακας Σύγκρισης: 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 ροής

Συνηθισμένοι Τρόποι Διαφθοράς & Οδηγός Ανάκτησης Hex

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

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

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

Ανάλυση Ασφάλειας & Διανύσματα Επίθεσης Parser

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

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

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

Βέλτιστες αμυντικές πρακτικές:

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

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 δεν συμπιέζει τα δεδομένα απευθείας. Αναδιατάσσει τη σειρά των χαρακτήρων ώστε τα πανομοιότυπα γράμματα να ομαδοποιούνται, καθιστώντας τα εύκολα συμπιεστήσιμα μέσω της κωδικοποίησης Huffman.

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

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

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

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

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

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

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