CRC32 Hash Generator

Mit diesem Tool können Sie online CRC32 Prüfsummen generieren. Sie werden mit der internen PHP Funktion crc32() bzw. hash() erstellt.
Eingabe
Ergebnis Hexadecimal

Integer

Ethernet Hexadecimal

Was ist CRC32?

Die zyklische Redundanzprüfung (englisch cyclic redundancy check, daher meist CRC) ist ein Verfahren zur Bestimmung eines Prüfwerts für Daten, um Fehler bei der Übertragung oder Speicherung erkennen zu können.

Vor der Datenspeicherung oder Übertragung wird für jeden Datenblock der Nutzdaten zusätzliche Redundanz in Form eines sogenannten CRC-Werts angefügt. Dieser ist ein nach einem bestimmten Verfahren berechneter Prüfwert, mit dessen Hilfe man eventuelle während der Speicherung bzw. Übertragung aufgetretene Fehler erkennen kann. Zur Überprüfung der Daten wird dasselbe Berechnungsverfahren auf den Datenblock einschließlich des angefügten CRC-Werts angewandt. Ist das Ergebnis dann Null, kann angenommen werden, dass der Datenblock unverfälscht ist. Verschiedene technische Anwendungen weichen allerdings von diesem Schema ab, indem sie beispielsweise die Berechnung mit einem bestimmten Wert initialisieren oder den CRC-Wert vor der Übermittlung invertieren. 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. CRCs von seriellen Datenübertragungen können sehr einfach in Hardware realisiert werden. Zum Beispiel werden Datenübertragungen über Ethernet, sowie die meisten Festplatten-Übertragungen mit CRC-Verfahren geprüft. Das CRC-Verfahren ist nur für die Erkennung von zufälligen Fehlern ausgelegt. Es ist nicht geeignet, die Integrität der Daten zu bestätigen. Das heißt, es ist verhältnismäßig leicht, durch beabsichtigte Modifikation einen Datenstrom zu erzeugen, der den gleichen CRC-Wert wie eine gegebene Nachricht hat. Wenn eine solche Sicherheit gefordert ist, müssen kryptografische Hash-Funktionen wie beispielsweise SHA zum Einsatz kommen. Der Name des Verfahrens beruht darauf, dass der angefügte Wert keinen Informationsgehalt besitzt, der nicht bereits in dem zugrunde liegenden Datenblock enthalten ist. Er ist deshalb redundant. CRCs beruhen auf zyklischen Codes. Das sind Block-Codes, die die Eigenschaft haben, dass jede zyklische Verschiebung der Bits eines gültigen Code-Worts ebenfalls ein gültiges Code-Wort ist.

In MySQL gibt CRC32() den Integer-Wert aus. PHP macht dies ebenfalls bei Nutzung von crc32(). Den hexadezimalen Wert erhält man in PHP über hash('crc32b', 'string'). Wer hash() nutzen möchte und den Integerwert benötigt, muss pack()/unpack() nutzen.

Ruby, Python, Perl und Java geben mit crc32 die gleichen Ergebnisse aus wie PHP mit dechex(crc32()) oder hash('crc32b', 'string'). Hierbei nutzt crc32 den gleichen Table wie RZMODEM oder PKZIP. Wer die Ethernet packet CRCs (identisch zu AUTODIN II und FDDI) berechnen möchte muss in PHP hash('crc32', 'string') nutzen oder in anderen Sprachen auf die mash-Library zurückgreifen.

Quellen: wikipedia.org, php.net und weitere