CRC-32 Prüfsumme

Herkunft / Verwendung:CRC steht für Cyclic Redundancy Check, also 'zyklische Redundanzprüfung' und ist ein Verfahren zur Bestimmung eines Prüfwerts für Daten, um Fehler bei der Übertragung oder Speicherung erkennen zu können. Das Verfahren wurde 1961 von W. Wesley Peterson entwickelt. Der Hash ist 32 bit, also 4 Byte lang.

CRC ist so ausgelegt, dass Fehler bei der Übertragung der Daten, wie sie beispielsweise durch Rauschen auf der Leitung verursacht werden könnten, mit hoher Wahrscheinlichkeit entdeckt werden. Zum Beispiel werden Datenübertragungen über Ethernet, sowie die meisten Festplatten-Übertragungen mit CRC-Verfahren geprüft.

Beschreibung des Algorithmus

Die Berechnung des CRC-Werts beruht auf Polynomdivision: Die Folge der zu übertragenden Bits wird als binäres Polynom betrachtet.
Beispiel: Die Bitfolge 1 0 0 1 1 1 0 1 entspricht dem Polynom 1*x7 + 0*x6 + 0*x5 + 1*x4 + 1*x3 + 1*x2 + 0*x1 + 1*x0

Die Bitfolge der Coderepräsentation der Daten wird durch ein vorher festzulegendes Generatorpolynom (das CRC-Polynom) Modulo mod(2) geteilt, wobei ein Rest bleibt. Dieser Rest ist der CRC-Wert. Bei der Übertragung des Datenblocks hängt man den CRC-Wert an den originalen Datenblock an und überträgt ihn mit.

Um zu verifizieren, dass die Daten keinen Fehler beinhalten, wird der empfangene Datenblock mit angehängtem CRC-Wert als Binärfolge interpretiert, erneut durch das CRC-Polynom Modulo geteilt und der Rest ermittelt. Wenn kein Rest bleibt, ist entweder kein Fehler aufgetreten oder es ist ein (sehr unwahrscheinlicher) Fehler aufgetreten, der in Polynomdarstellung das CRC-Polynom als Faktor hat.

Die genaue Beschreibung des Algorithmus findet sich in RFC 1952.

Beispiel

Klartext:Beispielklartext
Hash:08C11ABD

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)

Wenn Sie Texte eingeben, die nicht als Hex-Sequenz (ohne Leerzeichen) interpretiert werden können, erfolgt eine automatische Umsetzung in eine Hex-Sequenz. Ist Das Ergebnis umsetzbar in druckbare ASCII-Zeichen, erfolgt eine automatische Umsetzung von Hex.