CRC-32 / ISO-HDLCPKZip · PNG · Ethernet
Die häufigste CRC-32-Implementierung, auch CRC-32b genannt. Es verwendet die reflektierte Form des Polynoms 0x04C11DB7, nämlich 0xEDB88320. Sowohl Eingabebytes als auch Ausgabe werden bitreflektiert (LSB zuerst), wobei der Anfangswert und das endgültige XOR beide auf 0xFFFFFFFF gesetzt sind.
Wird häufig von ZIP, gzip, PNG-Bildern, Ethernet-Frames (IEEE 802.3), PKCS#7 und vielen älteren Systemen verwendet. Dies ist de facto die „Standard-CRC-32“-Variante.
| Polynom | 0x04C11DB7(normal) /0xEDB88320(reflektiert) |
| Anfangswert | 0xFFFFFFFF |
| Eingabereflexion | Ja (RefIn = true) |
| Ausgabereflexion | Yes (RefOut = true) |
| Final XOR | 0xFFFFFFFF |
| Wert prüfen | 0xCBF43926(für „123456789“) |
CRC-32C / CastagnoliiSCSI · NVMe · SCTP
Diese Variante wurde 1993 von G. Castagnoli und Kollegen vorgeschlagen und verwendet das Polynom 0x1EDC6F41 (gespiegelte Form 0x82F63B78). Bei gleicher Hamming-Distanz bietet es eine stärkere Burst-Fehlererkennung als das ISO-HDLC-Polynom.
Hardwarebeschleunigung ist über Intel SSE4.2- und ARM CRC32-Anweisungen verfügbar. Es wird häufig in modernen Speicher- und Transportprotokollen wie iSCSI, NVMe, Btrfs und SCTP verwendet.
| Polynom | 0x1EDC6F41(normal) /0x82F63B78(reflektiert) |
| Anfangswert | 0xFFFFFFFF |
| Eingabereflexion | Ja (RefIn = true) |
| Ausgabereflexion | Yes (RefOut = true) |
| Final XOR | 0xFFFFFFFF |
| Wert prüfen | 0xE3069283(für „123456789“) |
CRC-32 / MPEG-2MPEG-2 · DVB · ATSC
Verwendet dasselbe 0x04C11DB7-Polynom wie ISO-HDLC, aber weder Eingabe noch Ausgabebit-reflektiert(MSB zuerst, Big-Endian). Der Anfangswert ist 0xFFFFFFFF und das letzte XOR ist deaktiviert (XorOut = 0x00000000).
Wird hauptsächlich für PSI/SI-Tabellen in MPEG-2-Transportströmen (PAT, PMT, NIT und verwandte Tabellen) sowie für Integritätsprüfungen in DVB- und ATSC-Rundfunksystemen verwendet.
| Polynom | 0x04C11DB7 |
| Anfangswert | 0xFFFFFFFF |
| Eingabereflexion | No (RefIn = false) |
| Ausgabereflexion | No (RefOut = false) |
| Final XOR | 0x00000000(deaktiviert) |
| Wert prüfen | 0x0376E6E7(für „123456789“) |
CRC-32 / BZIP2BZip2 · AAL5 · DECT
Seine Parameter sind nahezu identisch mit denen von MPEG-2 (Polynom 0x04C11DB7, keine Reflexion, Anfangswert 0xFFFFFFFF). Der einzige Unterschied ist afinal XOR mit 0xFFFFFFFF, was jedes Bit umdreht. Es ist auch als CRC-32/AAL5 oder CRC-32/DECT-B bekannt.
Wird vom BZip2-komprimierten Dateiformat und dem Trailer-Prüfsummenfeld des ATM-AAL5-Protokolls verwendet.
| Polynom | 0x04C11DB7 |
| Anfangswert | 0xFFFFFFFF |
| Eingabereflexion | No (RefIn = false) |
| Ausgabereflexion | No (RefOut = false) |
| Final XOR | 0xFFFFFFFF |
| Wert prüfen | 0xFC891918(für „123456789“) |
UTF-8-TextDefault · Allgemein
Behandelt die Eingabe alsUTF-8string, wandelt ihn in Bytes um und berechnet dann CRC32. Dies ist der gebräuchlichste Modus für einfachen Text, Quellcode, JSON und ähnliche Inhalte.
Hinweis: Derselbe Text, der mit einem anderen Zeichensatz wie GBK oder UTF-16 codiert ist, erzeugt einen anderen Bytestrom und daher einen anderen CRC32-Wert. Dieses Tool verwendet immer UTF-8.
| Am besten für | Klartext, Quellcode, JSON, XML |
| Beispiel | "Hallo" →48 65 6C 6C 6F(5 Bytes) |
| CJK Zeichen | Die meisten CJK-Zeichen verwenden 3 Bytes in UTF-8 |
HexadezimalBinärdaten · Protokollrahmen
Behandelt die Eingabe als unformatierthexadezimale Byteliterale. Leerzeichen und Zeilenumbrüche werden ignoriert. Alle zwei Hexadezimalzeichen werden zu einem Byte (00–FF).
Nützlich, wenn Sie CRC-Prüfungen für genaue Binärdaten wie Netzwerkframes, Firmware-Image-Fragmente oder Speicherabbilder benötigen. Sie können die Wireshark- oder Hex-Dump-Ausgabe direkt einfügen.
| Format | Nur0-9unda-f / A-Fsind erlaubt |
| Zeichenanzahl | Muss gerade sein (2 Zeichen pro Byte) |
| Beispiel | 48656C6C6F= „Hallo“ (5 Bytes) |
| Leerzeichen | Automatisch ignoriert.48 65 6Cist dasselbe wie48656C |
Base64Encoded Binary · Zertifikate · Bilder
Behandelt die Eingabe alsBase64-codierte Zeichenfolge, dekodiert es in Rohbytes und berechnet dann CRC32. Nützlich für PEM-Zertifikate, JWT-Nutzlasten, Daten-URIs und andere Base64-Inhalte.
Unterstützt das Standard-Base64-Alphabet (A-Z a-z 0-9 + /). Das Füllzeichen=ist optional. URL-sicheres Base64 (-_) wird nicht unterstützt.
| Alphabet | A-Z a-z 0-9 + / = |
| Beispiel | SGVsbG8=→ „Hallo“ (5 Bytes) |
| URL-sicher | Nicht unterstützt. Ersetzen-→+und_→/first |
| ⚠ 1 Zeichen | Invalid – 6 Bits reichen nicht aus, um 1 Byte zu bilden (8 Bits erforderlich) |
| 2 Zeichen | Dekodiert zu1 Byte(mindestens gültige Eingabe) |
| 3 Zeichen | Dekodiert zu2 Bytes |
| 4 Zeichen | Dekodiert zu3 Bytes(das Muster wiederholt sich alle 4 Zeichen) |
HexadezimalAm häufigsten · Standard
Zeigt den Wert als 8-stellige Hexadezimalzahl in Großbuchstaben mit dem Präfix an0x. Jedes Zeichen repräsentiert 4 Bits, also insgesamt 32 Bits. Dies ist das Standardformat, das in den meisten Tools, Quellcodes und Dokumentationen verwendet wird.
Im Vergleich zur dezimalen Ausgabe erleichtert die hexadezimale Ausgabe die Überprüfung von Bytegrenzen und gleicht Speicherauszüge und Protokollfelder natürlicher ab.
| Beispiel | 0xCBF43926 |
| Length | 8 Hexadezimalzeichen = 32 Bit |
| Base | Basis 16 (0-9, A-F) |
| Am besten für | Code, Dokumentation, Wireshark, Hex-Editoren |
DecimalVorzeichenlose 32-Bit-Ganzzahl
Zeigt die Prüfsumme als anunsigned 32-Bit-Dezimal-Ganzzahlim Bereich 0–4.294.967.295 (2³²−1). Einige Sprachen und Tools vergleichen CRC-Werte in Dezimalform und Datenbankfelder speichern diese Darstellung häufig.
Hinweis: CRC32-Ergebnisse sollten als vorzeichenlose Ganzzahlen behandelt werden. In vorzeichenbehafteten int-Typen wie Java oder C# können Werte über 0x7FFFFFFF negativ erscheinen und sollten in uint oder eine breitere vorzeichenlose Darstellung konvertiert werden.
| Beispiel | 3421780262 |
| Range | 0–4,294,967,295 |
| Hinweis | Für Java int, konvertieren mit& 0xFFFFFFFFL |
| Am besten für | Datenbanken, Python-Strukturwerte, numerischer Vergleich |
BinärBit-Level-Analyse
Zeigt die Prüfsumme als 32-Bit-Binärzeichenfolge mit dem Präfix an0b. Jedes Zeichen ist 0 oder 1, ausgerichtet am höchstwertigen Bit auf der linken Seite und bei Bedarf mit führenden Nullen aufgefüllt.
Hauptsächlich nützlich zum Verständnis des internen CRC-Algorithmus, zum Studium der Polynomdivision, zum Unterrichten und für eingebettete Szenarien, die eine Prüfsummenverarbeitung auf Bitebene erfordern.
| Beispiel | 0b11001011…00100110 |
| Length | Fest auf 32 Bit mit linker Nullauffüllung |
| Höchstes Bit | Bit 31 (MSB) erscheint ganz links |
| Am besten für | Algorithmusanalyse, Unterricht, eingebettetes Debugging |
OctalUnix · Dateisysteme
Zeigt die Prüfsumme als 11-stellige Oktalzahl mit dem Präfix an0o. Für 32 Bit werden höchstens 11 Oktalzeichen benötigt, da 3×11 = 33 > 32. Jede Oktalziffer repräsentiert 3 Bits.
Oktale Ausgabe ist in modernen CRC-Workflows ungewöhnlich, kommt aber immer noch in einigen Unix-Tools, eingebetteten Firmware-Toolchains und älteren Kommunikationsprotokollspezifikationen vor.
| Beispiel | 0o31572031046 |
| Length | Bis zu 11 Oktalziffern |
| Pro Ziffer | Repräsentiert 3 Bits (0-7) |
| Am besten für | Unix-Tools, ältere Protokollspezifikationen |