CRC-16 XMODEM-Pruefsumme
Die neun Zeichen 123456789 ergeben den CRC-16/XMODEM-Wert 31c3, dezimal 12739, den dokumentierten Prüfwert des CCITT-Profils mit Startwert null aus klassischer Dateiübertragung und Firmware. Fügen Sie einen beliebigen Text ein und erhalten Sie seine Prüfsumme. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- 123456789
- Ergebnis
- 31c3
- Crc16
- 31c3
- Hex
- 31c3
- Dezimal
- 12.739
CRC-16/XMODEM ist eine zyklische Redundanzprüfung mit sechzehn Bit, die in klassischem Dateiübertragungs-Framing, eingebetteter Firmware und Protokollstacks eingesetzt wird, wenn ein kompaktes Integritätswort statt eines vollständigen kryptografischen Hashes genügt. Ingenieure, Studierende und Support-Teams benötigen oft dasselbe Lehrbuchergebnis für eine kurze Zeichenkette: das CCITT-Generatorpolynom 0x1021, Initialregister null (der XMODEM-Seed), keine Bit-Reflexion und finales XOR null—genau das Profil CRC-16/XMODEM, dessen Prüfwert für die ASCII-Ziffern eins bis neun hexadezimal 31C3 ist. Dieses CRC-16-XMODEM-Prüfsummenwerkzeug akzeptiert nichtleeren Text, kodiert ihn als UTF-8, führt jene deterministische Shift-und-XOR-Schleife aus und liefert die sechzehn-Bit-Prüfsumme als vier hexadezimale Kleinbuchstaben-Ziffern zusammen mit dem Dezimalwert und einer kurzen Zusammenfassung.
Was eine CRC-16 nach XMODEM berechnet
Eine zyklische Redundanzprüfung behandelt eine Nachricht wie ein Polynom und teilt sie durch ein festes Generatorpolynom; der Rest dieser Division ist die Prüfsumme. Bei CRC-16 ist der Rest 16 Bit breit und passt in vier Hexziffern. XMODEM nutzt das CCITT-Polynom 1021 hexadezimal, startet das Register bei null, spiegelt keine Bits und verzichtet auf eine abschließende Maske. Praktisch wird jedes Byte per Exklusiv-Oder in die oberen acht Bit eines 16-Bit-Registers eingerechnet und dann achtmal verschoben. Ihr Text wird vorher als UTF-8 kodiert, und Sie erhalten den Wert in Hex und dezimal.
Wofür sie taugt und welche Fehler häufig sind
Firmware-Entwickler und Studierende serieller Protokolle prüfen damit von Hand berechnete Reste, ohne in jeder Sprache eine Schiebeschleife zu schreiben. Der Referenzwert für 123456789 ist 31C3; weicht Ihre Umsetzung ab, lohnt ein Blick auf Startwert und Polynom. Am häufigsten wird XMODEM mit CCITT-FALSE verwechselt, das dasselbe Polynom, aber den Startwert FFFF nutzt. Eine leere Eingabe wird abgelehnt, damit eine fehlende Antwort nicht wie eine Prüfsumme null aussieht. Und weil eine CRC weder kollisionsresistent noch geschlüsselt ist, erkennt sie zufällige Beschädigung, beweist aber keine Echtheit.
Was CRC-16/XMODEM mit Polynom 0x1021 berechnet und warum das Hex-Wort zählt
Eine zyklische Redundanzprüfung behandelt eine Nachricht als Polynom über dem Galois-Körper mit zwei Elementen und teilt sie durch ein festes Generatorpolynom; der Rest wird zur Prüfsumme. Beim CRC-16 ist der Rest sechzehn Bit breit, sodass das gesamte Ergebnis in ein Wort passt und natürlich als vier hexadezimale Ziffern geschrieben wird. Der von XMODEM und vielen CCITT-Beispielen genutzte Generator ist 0x1021 und expandiert zu x hoch sechzehn plus x hoch zwölf plus x hoch fünf plus eins.
Entscheidend ist, dass das XMODEM-Profil das Register mit null statt mit allen Einsen initialisiert; genau diese Wahl trennt CRC-16/XMODEM von CRC-16/CCITT-FALSE, das dasselbe Poly, aber init 0xFFFF nutzt und daher andere Prüfwerte für dieselbe Nutzlast liefert. In Software erfolgt die Division, indem jedes Eingabe-Byte in die oberen acht Bits eines sechzehn-Bit-Registers exclusive-or-verknüpft und achtmal nach links geschoben wird, mit exclusive-or des Generators, sobald das High-Bit gesetzt ist.
Diese Landing nutzt stets jenen nicht reflektierten Algorithmus mit Initialwert null und finalem XOR null—das Profil, dessen dokumentierter Prüfwert für die neun-Byte-ASCII-Zeichenkette eins zwei drei vier fünf sechs sieben acht neun 31C3 ist. Die Antwort spiegelt außerdem die Dezimalzahl, die Polynom-Zeichenkette 0x1021, die Algorithmus-Bezeichnung CRC-16/XMODEM, die UTF-8-Byteanzahl und den Originaltext wider, damit Clients eine vollständige Audit-Zeile anzeigen können, ohne Metadaten neu abzuleiten.
Weil CRC-16 weder kollisionsresistent noch geschlüsselt ist, behandeln Sie es als Framing- oder Zufallsfehler-Prüfung, nicht als Authentizitätsnachweis; bevorzugen Sie SHA-Familien-Digests, wenn die Suchintention kryptografisches Hashing und nicht ein Zwei-Byte-CRC ist.
Firmware-Autoren und Studierende serieller Protokolle nutzen einen CRC-16-XMODEM-Prüfsummenrechner, um handberechnete Reste gegen das CCITT-Polynom mit Null-Seed zu prüfen, ohne in jeder Sprache eine Shift-Schleife zu schreiben. Lehrplattformen und LMS-Plugins brauchen ein deterministisches Orakel, das leere Eingabe ablehnt statt null für die leere Nachricht zurückzugeben, damit Auto-Grader fehlende Antworten von einer echten Null-Prüfsumme unterscheiden. Content-Seiten, die für CRC-16 XMODEM, CRC16-XMODEM-Rechner oder CCITT-Poly-0x1021-Prüfsumme ranken, profitieren von einem Live-Tool, dessen kostenloser Pfad Byte für Byte mit dem bezahlten Automatisierungspfad auf demselben reinen Modul übereinstimmt.
Validierungsfehler verbrauchen nach Ablehnung nie Saldo. Kombinieren Sie mit CRC-8-, CRC-32- oder kryptografischen Hash-Landings nur, wenn die Suchintention über eine sechzehn-Bit-XMODEM-Framing-Prüfung hinausgeht—halten Sie diese Seite auf Null-Seed-Poly 0x1021 CRC-16/XMODEM fokussiert, damit die SEO-Intention scharf bleibt und nicht mit MODBUS-, IBM- oder CCITT-FALSE-Varianten kollidiert, die denselben Familiennamen teilen, aber nicht denselben Prüfvektor.
Anwendungsfälle
XMODEM- und serielle Protokollprüfungen
Prüfen Sie, ob eine Nutzlast-Zeichenkette den erwarteten sechzehn-Bit-CRC-16/XMODEM-Trailer unter Poly 0x1021 und Init null erzeugt, bevor Sie Geräte-Logs oder Unit-Test-Vektoren vergleichen.
CRC-Rest-Demos im Unterricht
Lehrkräfte zeigen den klassischen Wert 123456789 → 31C3 und lassen Studierende andere kurze Strings ohne CRC-Bibliothek neu berechnen.
Häufige Fragen
Welche CRC-16-Parameter nutzt dieses Werkzeug?
CRC-16/XMODEM: Poly 0x1021 (CCITT), init 0x0000, keine Reflexion, xorout 0x0000. Der dokumentierte Prüfwert für ASCII 123456789 ist 31C3.
Was passiert, wenn der Text leer ist?
Ein nichtleerer String ist erforderlich; leere Eingabe gilt nicht als erfolgreiche Null-Prüfsumme.
Ist CRC-16/XMODEM dasselbe wie CRC-16/CCITT-FALSE?
Nein. Beide nutzen Poly 0x1021, aber XMODEM initialisiert das Register mit null, während CCITT-FALSE 0xFFFF verwendet, sodass die Prüfwerte abweichen. Dieses Werkzeug implementiert nur XMODEM.
Wie werden Umlaute und andere Nicht-ASCII-Zeichen gezählt?
Der Text wird vor der Berechnung als UTF-8 kodiert. Ein Zeichen aus mehreren Bytes trägt jedes davon bei, genau so, wie ein eingebettetes Gerät denselben UTF-8-Strom empfangen würde.
Belegt eine CRC-16-XMODEM-Prüfsumme, dass eine Datei echt ist?
Nein. Diese Zwei-Byte-Prüfung ist nicht kollisionsresistent und nutzt keinen Schlüssel, sie erkennt vor allem zufällige Übertragungsfehler. Wer Echtheit nachweisen will, braucht ein kryptografisches Verfahren wie SHA.
Was geschieht bei einer leeren Eingabe?
Sie wird abgelehnt, statt eine Null zu liefern. Damit lässt sich eine fehlende Antwort nie mit einer echten Prüfsumme verwechseln, deren Wert zufällig null beträgt.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/crc16-xmodem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"123456789"}'const res = await fetch("https://api.kit.forhosting.com/enc/crc16-xmodem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "123456789"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/crc16-xmodem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "123456789"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/crc16-xmodem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"123456789"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"123456789"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/crc16-xmodem", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "123456789"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.crc16_xmodem",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Leere Eingabe wird mit invalid_input abgelehnt, damit Aufrufer ein fehlendes Feld nie mit einer echten Null-Prüfsumme verwechseln.
Eingabevertrag, Fehler bei leerer Zeichenkette und Form der JSON-Antwort
Die Zeichenkette wird vor der CRC-Schleife als UTF-8 kodiert, sodass Mehrbyte-Zeichen jedes Code-Unit-Byte genau so beitragen, wie es ein Embedded-Gerät bei demselben UTF-8-Strom täte. Verankern Sie sowohl einen Erfolgspfad als auch einen Fehler bei leerer Eingabe in der Continuous Integration, damit versehentliche Poly- oder Init-Änderungen nicht unbemerkt bleiben. Optionale Null-Felder werden weggelassen statt als null ausgegeben, passend zum deklarativen Renderer-Vertrag für saubere Webformulare. Senden Sie per POST einen JSON-Body mit einem einzigen erforderlichen String-Feld namens text: jede nichtleere Zeichenfolge, die Sie prüfen möchten. Die Aliase input, value, s, data, message und payload werden für dasselbe Feld akzeptiert, damit SDK-Stubs und Formular-Posts flexibel bleiben. Fehlt text, ist der Wert kein String oder ist die Zeichenkette leer, schlägt die Anfrage mit invalid_input und einer klaren Meldung fehl, dass ein nichtleerer String erforderlich ist; solche Fehler werden auf der prepaid API nicht berechnet. Bei Erfolg enthält der Body result, crc16 und hex jeweils mit derselben vierstelligen hexadezimalen Prüfsumme in Kleinbuchstaben; decimal als Ganzzahl von null bis fünfundsechzigtausendfünfhundertfünfunddreißig; polynomial fest 0x1021; algorithm fest CRC-16/XMODEM; input_bytes gleich der UTF-8-Länge; text als Echo der Eingabe; und message mit Byteanzahl und Hex-Ergebnis. Halten Sie Nutzlasten auf gewöhnlichen Textgrößen, die zu einem Item-Aufruf in einem Worker-Isolate passen; dieses Werkzeug ist für kurze Strings und Protokollausschnitte gedacht, nicht für mehr-Megabyte-Binärblobs.
Wo eine CRC-16-XMODEM-Prüfsummen-API Nutzen stiftet und wie die Preise funktionieren
Nutzen Sie das kostenlose Browser-Tool für Einzelprüfungen; rufen Sie die prepaid KIT-API aus Backends, Serverless-Funktionen und SDKs auf, wenn Sie einen stabilen Vertrag unter Saldo zu $0.002 pro erfolgreichem Item brauchen.
Integrationsbeispiele
CI-Fixtures für Framing-Code
Pipelines verankern deterministische CRC-16/XMODEM-Hex-Ausgaben und den Fehler bei leerer Eingabe, damit versehentliche Poly- oder Init-Änderungen sofort scheitern.
Technische Fragen
Wie berechne ich eine CRC-16-XMODEM-Prüfsumme von Text?
Senden Sie JSON mit einem nichtleeren String-Feld text. Die API UTF-8-kodiert die Zeichenkette, führt CRC-16/XMODEM mit Polynom 0x1021 und init 0x0000 aus und liefert das Wort als vier hexadezimale Kleinbuchstaben-Ziffern in result, crc16 und hex.
Ist der CRC-16-XMODEM-Prüfsummenrechner kostenlos?
Das Browser-Tool läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen prepaid KIT-Saldo zu $0.002 pro erfolgreichem Item; Validierungsfehler werden nicht berechnet.