CRC-32 von „123456789“
0xCBF43926 0xCBF43926 für CRC-32/ISO-HDLC, die Variante, die ZIP, PNG, Ethernet und gzip verwenden.
Hex oder Text einfügen, alle 63 CRC-8-, CRC-16- und CRC-32-Varianten auf einmal berechnen. Prüfsumme passt nicht? Wert eintragen, das Tool nennt die Variante: MODBUS, CCITT-FALSE, XMODEM, KERMIT. Rechnet lokal im Browser.
| Variante | Ergebnis | Poly | Init | RefIn/RefOut | XorOut |
|---|---|---|---|---|---|
| CRC-8 | |||||
| CRC-8/AUTOSAR | 0x2F | 0xFF | false / false | 0xFF | |
| CRC-8/BLUETOOTH | 0xA7 | 0x00 | true / true | 0x00 | |
| CRC-8/CDMA2000 | 0x9B | 0xFF | false / false | 0x00 | |
| CRC-8/DARC | 0x39 | 0x00 | true / true | 0x00 | |
| CRC-8/DVB-S2 | 0xD5 | 0x00 | false / false | 0x00 | |
| CRC-8/GSM-A | 0x1D | 0x00 | false / false | 0x00 | |
| CRC-8/GSM-B | 0x49 | 0x00 | false / false | 0xFF | |
| CRC-8/HITAG | 0x1D | 0xFF | false / false | 0x00 | |
| CRC-8/I-432-1 CRC-8/ITU | 0x07 | 0x00 | false / false | 0x55 | |
| CRC-8/I-CODE | 0x1D | 0xFD | false / false | 0x00 | |
| CRC-8/LTE | 0x9B | 0x00 | false / false | 0x00 | |
| CRC-8/MAXIM-DOW CRC-8/MAXIM · DOW-CRC | 0x31 | 0x00 | true / true | 0x00 | |
| CRC-8/MIFARE-MAD | 0x1D | 0xC7 | false / false | 0x00 | |
| CRC-8/NRSC-5 | 0x31 | 0xFF | false / false | 0x00 | |
| CRC-8/OPENSAFETY | 0x2F | 0x00 | false / false | 0x00 | |
| CRC-8/ROHC | 0x07 | 0xFF | true / true | 0x00 | |
| CRC-8/SAE-J1850 CRC-8/J1850 | 0x1D | 0xFF | false / false | 0xFF | |
| CRC-8/SMBUS CRC-8 | 0x07 | 0x00 | false / false | 0x00 | |
| CRC-8/TECH-3250 CRC-8/AES · CRC-8/EBU | 0x1D | 0xFF | true / true | 0x00 | |
| CRC-8/WCDMA | 0x9B | 0x00 | true / true | 0x00 | |
| CRC-16 | |||||
| CRC-16/ARC CRC-16 · CRC-16/IBM · CRC-16/LHA | 0x8005 | 0x0000 | true / true | 0x0000 | |
| CRC-16/CDMA2000 | 0xC867 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/CMS | 0x8005 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/DDS-110 | 0x8005 | 0x800D | false / false | 0x0000 | |
| CRC-16/DECT-R R-CRC-16 | 0x0589 | 0x0000 | false / false | 0x0001 | |
| CRC-16/DECT-X X-CRC-16 | 0x0589 | 0x0000 | false / false | 0x0000 | |
| CRC-16/DNP | 0x3D65 | 0x0000 | true / true | 0xFFFF | |
| CRC-16/EN-13757 | 0x3D65 | 0x0000 | false / false | 0xFFFF | |
| CRC-16/GENIBUS CRC-16/DARC · CRC-16/EPC · CRC-16/EPC-C1G2 · CRC-16/I-CODE | 0x1021 | 0xFFFF | false / false | 0xFFFF | |
| CRC-16/GSM | 0x1021 | 0x0000 | false / false | 0xFFFF | |
| CRC-16/IBM-3740 CRC-16/CCITT-FALSE · CRC-16/AUTOSAR | 0x1021 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/IBM-SDLC CRC-16/X-25 · CRC-16/X25 · CRC-16/ISO-HDLC · CRC-B · X-25 | 0x1021 | 0xFFFF | true / true | 0xFFFF | |
| CRC-16/ISO-IEC-14443-3-A CRC-A | 0x1021 | 0xC6C6 | true / true | 0x0000 | |
| CRC-16/KERMIT CRC-16/CCITT · CRC-16/CCITT-TRUE · CRC-16/V-41-LSB · CRC-CCITT | 0x1021 | 0x0000 | true / true | 0x0000 | |
| CRC-16/LJ1200 | 0x6F63 | 0x0000 | false / false | 0x0000 | |
| CRC-16/M17 | 0x5935 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/MAXIM-DOW CRC-16/MAXIM | 0x8005 | 0x0000 | true / true | 0xFFFF | |
| CRC-16/MCRF4XX | 0x1021 | 0xFFFF | true / true | 0x0000 | |
| CRC-16/MODBUS | 0x8005 | 0xFFFF | true / true | 0x0000 | |
| CRC-16/NRSC-5 | 0x080B | 0xFFFF | true / true | 0x0000 | |
| CRC-16/OPENSAFETY-A | 0x5935 | 0x0000 | false / false | 0x0000 | |
| CRC-16/OPENSAFETY-B | 0x755B | 0x0000 | false / false | 0x0000 | |
| CRC-16/PROFIBUS CRC-16/IEC-61158-2 | 0x1DCF | 0xFFFF | false / false | 0xFFFF | |
| CRC-16/RIELLO | 0x1021 | 0xB2AA | true / true | 0x0000 | |
| CRC-16/SPI-FUJITSU CRC-16/AUG-CCITT | 0x1021 | 0x1D0F | false / false | 0x0000 | |
| CRC-16/T10-DIF | 0x8BB7 | 0x0000 | false / false | 0x0000 | |
| CRC-16/TELEDISK | 0xA097 | 0x0000 | false / false | 0x0000 | |
| CRC-16/TMS37157 | 0x1021 | 0x89EC | true / true | 0x0000 | |
| CRC-16/UMTS CRC-16/BUYPASS · CRC-16/VERIFONE | 0x8005 | 0x0000 | false / false | 0x0000 | |
| CRC-16/USB | 0x8005 | 0xFFFF | true / true | 0xFFFF | |
| CRC-16/XMODEM CRC-16/ACORN · CRC-16/LTE · CRC-16/V-41-MSB · ZMODEM | 0x1021 | 0x0000 | false / false | 0x0000 | |
| CRC-32 | |||||
| CRC-32/AIXM CRC-32Q | 0x814141AB | 0x00000000 | false / false | 0x00000000 | |
| CRC-32/AUTOSAR | 0xF4ACFB13 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/BASE91-D CRC-32D | 0xA833982B | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/BZIP2 CRC-32/AAL5 · CRC-32/DECT-B · B-CRC-32 | 0x04C11DB7 | 0xFFFFFFFF | false / false | 0xFFFFFFFF | |
| CRC-32/CD-ROM-EDC | 0x8001801B | 0x00000000 | true / true | 0x00000000 | |
| CRC-32/CKSUM CRC-32/POSIX | 0x04C11DB7 | 0x00000000 | false / false | 0xFFFFFFFF | |
| CRC-32/ISCSI CRC-32C · CRC-32/BASE91-C · CRC-32/CASTAGNOLI · CRC-32/INTERLAKEN | 0x1EDC6F41 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/ISO-HDLC CRC-32 · CRC-32/ADCCP · CRC-32/V-42 · CRC-32/XZ · PKZIP | 0x04C11DB7 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/JAMCRC | 0x04C11DB7 | 0xFFFFFFFF | true / true | 0x00000000 | |
| CRC-32/MEF | 0x741B8CD7 | 0xFFFFFFFF | true / true | 0x00000000 | |
| CRC-32/MPEG-2 | 0x04C11DB7 | 0xFFFFFFFF | false / false | 0x00000000 | |
| CRC-32/XFER | 0x000000AF | 0x00000000 | false / false | 0x00000000 | |
Nutzen Sie das, wenn Ihre Gerätedokumentation ein Polynom nennt, das nicht in der Tabelle oben steht.
Vom Engineering-Team von Go Tools gebaut und verifiziert.
0xCBF43926 0xCBF43926 für CRC-32/ISO-HDLC, die Variante, die ZIP, PNG, Ethernet und gzip verwenden.
0x4B37 0x4B37, mit poly 0x8005, init 0xFFFF, Eingang und Ausgang reflektiert, kein finales XOR.
0x29B1 0x29B1. Der formale Katalogname lautet CRC-16/IBM-3740: poly 0x1021, init 0xFFFF, keine Reflexion.
63 Dieser Rechner deckt 63 katalogisierte Varianten ab: 20 mit Breite 8, 31 mit Breite 16 und 12 mit Breite 32.
Eine zyklische Redundanzprüfung fasst einen Datenblock als die Koeffizienten eines sehr langen binären Polynoms auf, teilt ihn in Modulo-2-Arithmetik durch ein festes Generatorpolynom und behält den Rest. Dieser Rest ist die Prüfsumme. Beliebt ist die Konstruktion, weil die Division auf Schiebeoperationen und XOR zusammenschrumpft, was in Hardware fast nichts kostet, und weil die Algebra harte Garantien liefert statt statistischer Hoffnung: Ein gut gewähltes 16-Bit-Polynom erkennt jeden Einzelbitfehler, jeden Doppelbitfehler innerhalb einer brauchbaren Blocklänge, jede ungerade Anzahl gekippter Bits und jeden Burst von höchstens 16 aufeinanderfolgenden gestörten Bits.
Unübersichtlich wird CRC in der Praxis dadurch, dass das Polynom nur einer von sechs Parametern ist. Zwei Implementierungen können sich beim Polynom einig sein und trotzdem bei jedem Ergebnis auseinanderlaufen, weil sie sich im Startwert des Registers unterscheiden, darin, ob Eingabebytes und Ausgaberegister in der Bitreihenfolge umgedreht werden, und in der Konstante, die am Ende hineingeXORt wird. Eine CRC-Variante ist dieser ganze Parametersatz, nicht das Polynom allein — deshalb benennt ein Name wie „CRC-16“ für sich genommen so gut wie nichts, und deshalb stehen auf dieser Seite das Polynom, der Startwert, beide Reflexionsflags und das finale XOR neben jedem Ergebnis, mit der Breite als Gruppenüberschrift.
Ein Vorbehalt, den die Tabelle nicht zeigen kann: Ein 16-Bit-Polynom erkennt jede ungerade Anzahl gekippter Bits nur dann, wenn x+1 es teilt. Für die beiden, denen Sie am ehesten begegnen, 0x1021 und 0x8005, trifft das zu, aber nicht für alle — CRC-16/T10-DIF und CRC-16/PROFIBUS gehören zu den Ausnahmen.
// CRC-16/MODBUS: poly=0x8005, init=0xFFFF, refin/refout=true, xorout=0x0000
// Written in the reflected form, so the polynomial appears bit-reversed as 0xA001.
function crc16Modbus(bytes) {
let crc = 0xffff;
for (const byte of bytes) {
crc ^= byte;
for (let i = 0; i < 8; i++) {
crc = crc & 1 ? (crc >>> 1) ^ 0xa001 : crc >>> 1;
}
}
return crc;
}
crc16Modbus([0x01, 0x03, 0x00, 0x00, 0x00, 0x0a]); // 0xCDC5
// On the wire Modbus RTU sends the low byte first: ... 0x0A 0xC5 0xCD CRC-8, CRC-16 und CRC-32 rechnen während der Eingabe gemeinsam neu. Kein Auswahlfeld, in dem Sie erst raten müssen, bevor überhaupt etwas zu sehen ist.
Tragen Sie die Prüfsumme ein, die Sie bekommen haben, und die Varianten, die sie erzeugen, werden hervorgehoben — ein unbekannter Algorithmus ist damit in einem Schritt bestimmt statt in zwanzig.
Jede Zeile nennt den Namen aus dem RevEng-Katalog und dazu die Aliase aus der Praxis: CCITT-FALSE, CRC-16/IBM, CRC-32C, X-25 und die übrigen.
Polynom, Startwert, beide Reflexions-Flags und finales XOR stehen direkt neben dem Ergebnis, sodass Sie einen Treffer gegen die Spezifikation absichern können.
Breite, Polynom, Startwert, Reflexion und finales XOR sind frei einstellbar — für Polynome, die es nie in einen Katalog geschafft haben.
Gerechnet wird in Ihrem Browser. Telegramme aus dem Produktivbetrieb und Firmware-Abbilder verlassen den Rechner nicht.
123456789
CRC-32/ISO-HDLC = 0xCBF43926, CRC-16/MODBUS = 0x4B37, CRC-8/SMBUS = 0xF4
Jede CRC-Variante im RevEng-Katalog veröffentlicht ihr Ergebnis für die ASCII-Zeichenkette 123456789. Damit ist diese Eingabe der Standard-Selbsttest: Weicht eine Bibliothek von der Tabelle hier ab, liegt der Fehler bei der Bibliothek.
01 03 00 00 00 0A
CRC-16/MODBUS = 0xCDC5
Halteregister von Slave 1 lesen. Modbus RTU hängt das niederwertige CRC-Byte zuerst an, das Telegramm geht also als 01 03 00 00 00 0A C5 CD auf die Leitung — eine Vertauschung, auf die ein großer Teil der nicht nachvollziehbaren Prüfsummen zurückgeht.
DEADBEEF
MODBUS = 0xC19B, CCITT-FALSE = 0x4097, XMODEM = 0xC457, KERMIT = 0x1915
Im Hex-Modus gelesen, also vier Bytes statt der acht Zeichen der Zeichenkette. Die vier bekanntesten CRC-16-Varianten sind sich darüber vollkommen uneins. Kaputt ist deswegen nichts: Sie unterscheiden sich in Startwert, Reflexion und finalem XOR, nicht in der Korrektheit.
123456789 mit erwartetem Wert 0x29B1
CRC-16/IBM-3740 (im Handbuch meist CRC-16/CCITT-FALSE genannt)
Genau für diesen Fall ist der Rechner gebaut. Sie haben die Daten und die Prüfsumme, die jemand anderes berechnet hat, aber nicht den Namen der Variante — also suchen Sie den Parametersatz, der den Wert reproduziert.
Protokolltelegramme sind praktisch immer hexadezimal. Text brauchen Sie nur, wenn Sie eine buchstäbliche Zeichenkette prüfen, etwa den Selbsttestwert 123456789.
Im Hex-Modus werden Trennzeichen ignoriert: 01 03 00 00 00 0A, 0x01 0x03 und 010300 00000A werden alle akzeptiert.
Die Tabelle ist nach Breite gruppiert. Die formalen Namen stammen aus dem RevEng-Katalog, darunter stehen die Aliase, die vermutlich in Ihrem Gerätehandbuch auftauchen.
Wenn Sie bereits eine Prüfsumme haben und die Variante suchen, tragen Sie den Wert in das Feld für den erwarteten Wert ein und lesen die hervorgehobene Zeile ab.
Bleibt der Textmodus stehen, verrechnet der Rechner die ASCII-Zeichen Ihres Hexdumps statt der Bytes, für die sie stehen. Auf den Hex-Modus umschalten — die Byte-Anzahl unter dem Modusschalter sagt Ihnen, welche Lesart Sie bekommen haben.
Text mode, input "01 03" -> 5 bytes: 30 31 20 30 33
Hex mode, input "01 03" -> 2 bytes: 01 03
Modbus RTU überträgt das niederwertige CRC-Byte zuerst. Ein Telegramm, das auf C5 CD endet, trägt die Prüfsumme 0xCDC5, nicht 0xC5CD.
expected 0xC5CD (bytes read in transmission order)
expected 0xCDC5 (bytes reassembled low-byte-first)
Die CRC deckt die Bytes vor ihr ab. Schiebt man das ganze Telegramm samt Anhang zurück in die Berechnung, kommt ein Residuum heraus und nicht die Prüfsumme.
01 03 00 00 00 0A C5 CD <- trailer included
01 03 00 00 00 0A <- payload only
Einunddreißig katalogisierte Varianten sind 16 Bit breit. Ohne die anderen fünf Parameter grenzt der Name nichts ein.
spec says: "trailer is a CRC-16"
spec says: "CRC-16/MODBUS, poly 0x8005, init 0xFFFF, refin/refout true"
Sicherheitswerkzeuge
AES online entschlüsseln — GCM/CBC/CTR, Passphrase oder Rohschlüssel, erkennt automatisch das OpenSSL- & CryptoJS-Format „U2FsdGVkX1“. 100 % im Browser, Schlüssel verlassen die Seite nie.
Sicherheitswerkzeuge
Kostenloses Online-Tool für AES-Verschlüsselung — AES-128/192/256, GCM/CBC/CTR, Passphrase (PBKDF2) oder Rohschlüssel. Läuft zu 100 % im Browser; nichts wird hochgeladen.
Sicherheitswerkzeuge
Bcrypt-Passwort-Hashes online erzeugen und prüfen — einstellbarer Kostenfaktor, $2b$/$2a$/$2y$. 100 % im Browser; dein Passwort wird nie hochgeladen.
Sicherheitswerkzeuge
Kostenloser HMAC-Generator und -Prüfer online. Berechne HMAC-SHA256/SHA1/SHA384/SHA512 mit Schlüsseln als Text, Hex oder Base64 und Ausgabe als Hex/Base64/Base64URL. 100 % in deinem Browser — Schlüssel verlassen nie die Seite.
Sicherheitswerkzeuge
Dekodieren Sie JWT-Token online mit unserem kostenlosen JWT-Dekodierer. Inspizieren Sie sofort Header, Payload, Signatur, Ablauf und Claims. 100 % Browser — Ihr Token verlässt niemals Ihr Gerät. Keine Anmeldung, kein Tracking.
Sicherheitswerkzeuge
Kostenloser Online-JWT-Generator & -Kodierer. Erstellen Sie Header und Payload und signieren Sie sofort mit HS256, RS256 oder ES256. 100 % im Browser — Ihr Geheimnis und Ihr Schlüssel verlassen niemals Ihr Gerät.