CRC-32B Υπολογιστής κωδικού κατακερματισμού
Δημοσιεύθηκε: 17 Φεβρουαρίου 2025 στις 6:23:51 μ.μ. UTC
Τελευταία ενημέρωση: 12 Ιανουαρίου 2026 στις 9:15:41 π.μ. UTC
CRC-32B Hash Code Calculator
Ο κυκλικός έλεγχος πλεονασμού (CRC) είναι ένας κώδικας ανίχνευσης σφαλμάτων που χρησιμοποιείται συνήθως για την ανίχνευση τυχαίων αλλαγών σε ακατέργαστα δεδομένα. Αν και τεχνικά δεν είναι μια κρυπτογραφική συνάρτηση κατακερματισμού, το CRC-32 αναφέρεται συχνά ως κατακερματισμός λόγω της ικανότητάς του να παράγει μια έξοδο σταθερού μεγέθους (32 bit) από είσοδο μεταβλητού μήκους. Η έκδοση που παρουσιάζεται σε αυτήν τη σελίδα είναι η παραλλαγή CRC-32B, η οποία είναι στην πραγματικότητα απλώς μια ιδιορρυθμία στη γλώσσα PHP που αντιστρέφει τα bit (μικρό-endian έναντι μεγάλου-endian στο αρχικό CRC-32).
Πλήρης αποκάλυψη: Δεν έγραψα τη συγκεκριμένη υλοποίηση της συνάρτησης κατακερματισμού που χρησιμοποιείται σε αυτή τη σελίδα. Πρόκειται για μια τυπική συνάρτηση που περιλαμβάνεται στη γλώσσα προγραμματισμού PHP. Έφτιαξα μόνο τη διαδικτυακή διεπαφή για να την κάνω δημόσια διαθέσιμη εδώ για λόγους ευκολίας.
Σχετικά με τον αλγόριθμο κατακερματισμού CRC-32B
Δεν είμαι μαθηματικός, αλλά θα προσπαθήσω να εξηγήσω αυτήν τη συνάρτηση κατακερματισμού με μια απλή αναλογία. Σε αντίθεση με πολλές από τις κρυπτογραφικές συναρτήσεις κατακερματισμού, δεν είναι ένας ιδιαίτερα περίπλοκος αλγόριθμος, οπότε μάλλον θα είναι εντάξει ;-)
Φανταστείτε ότι στέλνετε μια επιστολή ταχυδρομικώς, αλλά ανησυχείτε ότι μπορεί να καταστραφεί πριν φτάσει στον παραλήπτη. Με βάση το περιεχόμενο της επιστολής, υπολογίζετε ένα άθροισμα ελέγχου CRC-32 και το γράφετε στον φάκελο. Όταν ο παραλήπτης λάβει την επιστολή, μπορεί επίσης να υπολογίσει το άθροισμα ελέγχου και να δει αν ταιριάζει με αυτό που γράψατε. Εάν ναι, η επιστολή δεν έχει καταστραφεί ή αλλοιωθεί στην πορεία.
Ο τρόπος με τον οποίο το CRC-32 το κάνει αυτό είναι μια διαδικασία τεσσάρων βημάτων:
Βήμα 1: Προσθέστε λίγο επιπλέον χώρο (επένδυση)
- Το CRC προσθέτει λίγο επιπλέον χώρο στο τέλος του μηνύματος (σαν να συσκευάζουμε φιστίκια σε ένα κουτί).
- Αυτό το βοηθά να εντοπίζει τα λάθη πιο εύκολα.
Βήμα 2: Ο Μαγικός Χάρακας (Το Πολυώνυμο)
- Το CRC-32 χρησιμοποιεί έναν ειδικό "μαγικό χάρακα" για τη μέτρηση των δεδομένων. Σκεφτείτε αυτόν τον χάρακα σαν ένα μοτίβο από εξογκώματα και αυλακώσεις (αυτό είναι το πολυώνυμο, αλλά μην ανησυχείτε για αυτή τη λέξη). Ο πιο συνηθισμένος "χάρακας" για το CRC-32 είναι ένα σταθερό μοτίβο.
Βήμα 3: Σύρσιμο του χάρακα (Διαδικασία διαίρεσης)
- Τώρα, το CRC σύρει τον χάρακα κατά μήκος του μηνύματος. Σε κάθε σημείο, ελέγχει αν τα εξογκώματα και οι αυλακώσεις ευθυγραμμίζονται. Εάν δεν ευθυγραμμίζονται, το CRC κρατάει μια σημείωση (αυτό γίνεται χρησιμοποιώντας απλό XOR, όπως η ενεργοποίηση ή η απενεργοποίηση των διακοπτών). Συνεχίζει να σύρει και να γυρίζει τους διακόπτες μέχρι να φτάσει στο τέλος.
Βήμα 4: Το Τελικό Αποτέλεσμα (Το Checksum)
- Αφού σύρετε τον χάρακα σε ολόκληρο το μήνυμα, μένει ένας μικρός αριθμός (μήκους 32 bit) που αντιπροσωπεύει τα αρχικά δεδομένα. Αυτός ο αριθμός είναι σαν ένα μοναδικό δακτυλικό αποτύπωμα για το μήνυμα. Αυτό είναι το άθροισμα ελέγχου CRC-32.
Η έκδοση που παρουσιάζεται στη σελίδα είναι η παραλλαγή CRC-32B, η οποία είναι ως επί το πλείστον μια ιδιορρυθμία της PHP που αλλάζει τη σειρά των bit (μικρό-endian έναντι μεγάλου-endian). Θα πρέπει πιθανώς να χρησιμοποιήσετε αυτήν την έκδοση μόνο εάν χρειάζεστε συγκεκριμένα συμβατότητα με μια άλλη εφαρμογή PHP που τη χρησιμοποιεί.
Έχω και αριθμομηχανές για τις άλλες παραλλαγές:
- Σύνδεσμος
- Σύνδεσμος
Περαιτέρω ανάγνωση
Αν σας άρεσε αυτή η ανάρτηση, ίσως σας αρέσουν και αυτές οι προτάσεις:
- HAVAL-128/4 Υπολογιστής κωδικού κατακερματισμού
- Υπολογιστής κώδικα κατακερματισμού HAVAL-128/3
- SHA-1 Υπολογιστής κωδικού κατακερματισμού
