XOR-Prüfsummen-Rechner
Der XOR-Prüfsummen-Rechner verdichtet eine geordnete Liste von Bytewerten zu einem einzigen 8-Bit-Integritätswert.
Im Browser ausführen – kostenlos
Geben Sie ganze Zahlen von 0 bis 255 ein und erhalten Sie die Prüfsumme dezimal, hexadezimal und binär sowie einen lesbaren Rechenausdruck. XOR-Prüfsummen werden in kompakten seriellen Nachrichten, Befehlen für eingebettete Geräte, älteren Datenformaten und einfachen LRC-Protokollen eingesetzt, da sie kaum Rechenleistung benötigen. Mit diesem Rechner können Sie Beispiele prüfen, Frames untersuchen, Testvektoren erstellen und Protokollvorgaben ohne ein eigens geschriebenes Skript nachvollziehen.
So wird eine XOR-Prüfsumme berechnet
Die Berechnung beginnt mit einem Akkumulator von null und wendet auf jedes Byte nacheinander die bitweise Exklusiv-ODER-Operation an. An jeder Bitposition ergibt XOR eine Eins, wenn sich die verglichenen Bits unterscheiden, andernfalls eine Null. Nach allen Schritten bleibt ein einzelnes Byte übrig. Derselbe Wert hebt sich bei zweimaliger Anwendung auf, weil x XOR x gleich null ist; XOR mit null lässt einen Wert unverändert. Die Operation ist assoziativ und kommutativ. Deshalb ändern Gruppierung oder Reihenfolge der ausgewählten Bytes das Ergebnis nicht, obwohl das Protokoll weiterhin festlegt, welche Felder einzubeziehen sind. Dieser Rechner prüft jedes Element auf eine ganze Zahl zwischen 0 und 255, verarbeitet die Liste einmal und formatiert denselben Wert auf drei Arten. Dezimalwerte eignen sich für allgemeine API, Hexadezimalwerte für Paketmitschnitte und Datenblätter, und die achtstellige Binärdarstellung zeigt jedes Bit. Der ausgegebene Ausdruck dokumentiert alle Operanden sowie die endgültige hexadezimale Prüfsumme.
Wählen Sie die richtigen Nachrichtenbytes
Die Rechnung ist einfach, doch die Auswahl des richtigen Frameabschnitts verursacht häufig Abweichungen. Prüfen Sie in der Protokolldefinition, ob Startmarkierung, Adresse, Befehl, Nutzdatenlänge, Nutzdaten, vorhandenes Prüfsummenfeld und Endmarkierung einbezogen werden. Meist wird das Prüfsummenbyte selbst ausgelassen, die Konventionen unterscheiden sich jedoch. Wandeln Sie hexadezimale Oktette wie 7E, 01 und A4 vor der Eingabe in ganze Zahlen um: Daraus werden 126, 1 und 164. Übermitteln Sie Zeichencodes nur, wenn das Protokoll ausdrücklich kodierten Text prüft. Das ASCII-Zeichen „7“ entspricht normalerweise dem Byte 55, ein numerisches Feld mit dem Wert sieben dagegen 7. Mehrbytezahlen müssen außerdem in der richtigen Bytefolge vorliegen, abhängig von der Endianness. Erstellen Sie die Liste genau in der Übertragungsform und vergleichen Sie den Hexadezimalwert mit Frame oder Handbuch. Die Byteanzahl zeigt, ob ein Feld fehlt oder doppelt enthalten ist.
Aussagekraft dieser Integritätsprüfung
Eine XOR-Prüfsumme ist sinnvoll, wenn ein Protokoll eine besonders schnelle Prüfung benötigt und dieses Verfahren bereits vorschreibt. Sie erkennt jede einzelne Bitänderung und viele weitere zufällige Veränderungen. Dadurch eignet sie sich zur Diagnose kurzer serieller Frames und ressourcenarmer Geräte. Gegenüber einem CRC oder kryptografischen Hash ist sie jedoch erheblich schwächer. Zwei gleiche Bitfehler in verschiedenen Bytes können sich aufheben, eine neue Reihenfolge bleibt unbemerkt, und Angreifer können Änderungen an anderer Stelle ausgleichen. Verwenden Sie das Ergebnis als Kompatibilitäts- und Diagnosewert, nicht als Nachweis für Authentizität oder Manipulationsschutz. Bei einem neuen Protokoll sollten Sie einen klar definierten CRC gegen Übertragungsfehler oder bei Sicherheitsanforderungen einen Nachrichtenauthentifizierungscode erwägen. Speichern Sie für reproduzierbare Tests sowohl die genaue Byteliste als auch den ausgegebenen Ausdruck. Browser und API verwenden dieselbe deterministische Logik; automatisierte Aufrufe kosten jeweils $0.002, sodass interaktive Prüfungen und Testpipelines übereinstimmen.
Anwendungsfälle
Seriellen Frame untersuchen
Berechnen Sie die Prüfsumme über die vorgesehenen Felder neu und vergleichen Sie sie mit dem empfangenen Byte.
Protokoll-Testvektoren erstellen
Erzeugen Sie stabile Dezimal-, Hexadezimal- und Binärwerte für Firmware-, Treiber- und Integrationstests.
Embedded-Befehle prüfen
Kontrollieren Sie Pakete vor dem Senden und gleichen Sie Umwandlung sowie Feldauswahl mit dem Handbuch ab.
Häufige Fragen
Welche Werte können Sie eingeben?
Geben Sie ein nicht leeres Array ganzer Zahlen von 0 bis 255 ein. Jede Zahl steht für genau ein Byte.
Beeinflusst die Reihenfolge die XOR-Prüfsumme?
Nein. XOR ist kommutativ. Für Dokumentation und Fehlersuche sollten Sie dennoch die Übertragungsreihenfolge beibehalten.
Soll das Prüfsummenbyte einbezogen werden?
Richten Sie sich nach der Spezifikation. Meist wird es ausgeschlossen; manche Prüfungen erwarten beim vollständigen Frame einen festgelegten Restwert.
Ist das dasselbe wie ein CRC?
Nein. Ein CRC nutzt Polynomdivision und erkennt mehr Fehlerklassen. XOR ist einfacher, aber deutlich schwächer.
Sind hexadezimale Zeichenketten erlaubt?
Der Vertrag akzeptiert ganzzahlige Bytes. Wandeln Sie jedes hexadezimale Oktett vor dem Aufruf in die entsprechende Zahl um.
Was kostet eine API-Berechnung?
Jede API-Anfrage kostet $0.002. Der Browser-Rechner steht für interaktive Prüfungen bereit.
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/elec/xor-checksum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bytes":[72,101,108,108,111]}'const res = await fetch("https://api.kit.forhosting.com/elec/xor-checksum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bytes": [
72,
101,
108,
108,
111
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/xor-checksum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bytes": [
72,
101,
108,
108,
111
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/xor-checksum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bytes":[72,101,108,108,111]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bytes":[72,101,108,108,111]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/xor-checksum", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"bytes": [
72,
101,
108,
108,
111
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.xor_checksum",
"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.
Limits
max_items | 65536 |
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. |