Erklärung · Mit ausgearbeiteten Beispielen

Wie Checksummen funktionieren

Kreditkartennummern, IBANs, Steuernummern und Krypto-Adressen enthalten jeweils eine oder zwei versteckte Zusatzziffern, die aus den anderen Ziffern berechnet werden. Tippen Sie eine Ziffer falsch ein, stimmt die Rechnung nicht mehr – so kann ein Validator einen Tippfehler sofort offline erkennen, ohne eine Bank oder die Blockchain zu befragen.

Was eine Checksumme ist

Eine Checksumme (oder Prüfziffer) ist bewusst eingebaute Redundanz. Bei der Ausgabe einer Zahl werden eine oder mehrere ihrer Ziffern nicht frei gewählt: Sie werden aus den übrigen Ziffern nach einem festen Verfahren berechnet. Jeder, der das Verfahren kennt, kann diese Ziffern später neu berechnen und vergleichen. Stimmen sie überein, ist die Zahl intern konsistent. Stimmen sie nicht überein, wurde etwas falsch eingegeben, falsch gelesen oder beschädigt.

Das ist alles, was eine Checksumme verspricht. Sie sagt nichts darüber aus, ob das Konto existiert, wem es gehört oder was es enthält – ein Punkt, den jeder Validator auf dieser Seite wiederholt, weil die beiden Aspekte leicht zu verwechseln sind.

Ausführliches Beispiel 1 – Luhn, der Algorithmus für Kreditkartennummern

Visa, Mastercard und die meisten anderen Zahlungskarten nutzen den Luhn-Algorithmus. Nehmen Sie das klassische Beispiel 7992 7398 713. Beginnend mit der rechts äußersten Ziffer verdoppeln Sie jede zweite Ziffer; wenn das Verdoppeln eine zweistellige Zahl ergibt, addieren Sie deren Ziffern zusammen. Anschließend summieren Sie alles.

ZifferPosition von rechtsDoppelt?Zählt als
3Prüfziffer3
1Die zweite von rechts1 × 2 = 22
7Die dritte7
8Die vierte8 × 2 = 16 → 1 + 67
9Die fünfte9
3Die sechste3 × 2 = 66
7Die siebte7
2Die achte2 × 2 = 44
9Die neunte9
9Die zehnte9 × 2 = 18 → 1 + 89
711.7

Die Spalte rechts ergibt die Summe 3 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 7 = 70. Siebzig ist durch zehn teilbar, daher ist die Zahl gültig. Ändern Sie eine einzige Ziffer, und die Summe ist nicht mehr ein Vielfaches von zehn. Probieren Sie es im Kreditkartenprüfer aus – dort wird diese exakte Rechenoperation direkt auf Ihrem Gerät ausgeführt.

Beispielrechnung 2 – eine gewichtete Summe (ISBN-10)

Viele nationale Ausweisnummern nutzen eine gewichtete Summe: Jede Ziffer wird mit einem festen Gewicht multipliziert, die Ergebnisse werden addiert und der Rest wird überprüft. Die ISBN-10 ist das anschaulichste Beispiel. Bei 0-306-40615-2 laufen die Gewichte von 10 bis 1:

0×10 + 3×9 + 0×8 + 6×7 + 4×6 + 0×5 + 6×4 + 1×3 + 5×2 + 2×1 = 132

132 entspricht genau 11 × 12, der Rest bei Division durch 11 ist also null und die ISBN ist gültig. Die brasilianische CPF, die polnische PESEL sowie Dutzende andere Identifikationsnummern folgen demselben Prinzip mit eigenen Gewichten und Modulen – weshalb ein Batch-ID-Validator tausende davon in einer Sekunde prüfen kann.

Beispielrechnung 3 – IBAN und Modulo 97

Internationale Bankkontonummern verwenden ISO 7064 Modulo 97-10, ein robusteres Verfahren mit zwei Prüfziffern. Nehmen wir das Standardbeispiel GB82 WEST 1234 5698 7654 32:

  1. Überprüfen Sie die Länge je nach Land: Eine britische IBAN besteht aus 22 Zeichen. ✓
  2. Verschieben Sie die ersten vier Zeichen an das Ende: WEST12345698765432GB82.
  3. Ersetzen Sie jeden Buchstaben durch zwei Ziffern (A = 10 … Z = 35): W→32, E→14, S→28, T→29, G→16, B→11, was 3214282912345698765432161182 ergibt.
  4. Teilen Sie diese Zahl durch 97. Der Rest muss genau 1 sein – und das ist der Fall.

Da 97 eine Primzahl ist und größer als jeder zweistellige Austausch ist, erkennt Modulo 97 jeden Fehler bei einer einzelnen Ziffer sowie jede Vertauschung; nur etwa ein zufälliger String von 97 würde zufällig bestehen. Der IBAN-Validator zeigt an, ob jede dieser Prüfebenen erfolgreich oder fehlgeschlagen ist.

Kryptowährungsadressen: Prüfsummen, die aus Hashwerten erzeugt werden.

Bitcoin- und Ethereum-Adressen stellen hohe Anforderungen, denn ein Tippfehler führt dazu, dass das Geld dauerhaft an niemanden überwiesen wird. Ältere Bitcoin-Adressen (1…, 3…) nutzen Base58Check: Der Adressinhalt wird zweimal durch SHA-256 verarbeitet und die ersten vier Bytes des Ergebnisses werden als Prüfsumme angehängt. Ein einziges falsches Zeichen ändert den Hash vollständig – die Wahrscheinlichkeit, dass ein Tippfehler unentdeckt bleibt, liegt bei etwa eins zu vier Milliarden. Neuere bc1…-Adressen verwenden Bech32 oder Bech32m, einen Fehlerkorrekturcode, der das Auftreten von Fehlern bei bis zu vier Zeichen zuverlässig erkennt. Bei Ethereum verbirgt EIP-55 die Prüfsumme im Muster aus Groß- und Kleinbuchstaben.

Der Bitcoin-Adressvalidator und der Ethereum-Adressvalidator setzen diese Algorithmen im Browser um und überprüfen sich bei jedem Seitenaufruf anhand der offiziellen Testvektoren.

Übersicht über die Verfahren

VerfahrenWird genutzt vonErkenntWahrscheinlichkeit, dass ein zufälliger Fehler durchkommt
Luhn (Modulo 10)Kredit- und Debitkarten, IMEI, viele nationale AusweisdokumenteJeder Einzelziffernfehler sowie die meisten benachbarten VertauschungenEtwa 1 von 10
ISO 7064 mod 97-10IBAN sowie einige Steuer- und FirmennummernJeder einzelne Fehler und jede VertauschungEtwa 1 von 97
Gewichtete Summe, mod 10 oder 11ISBN-10, brasilianische CPF-Nummern, polnische PESEL-Nummern und viele AusweisnummernEinzelne Fehler und die meisten VertauschungenEtwa 1 von 10 oder 1 von 11
Base58Check (doppelte SHA-256-Hashfunktion, 4 Bytes)Ältere Bitcoin-Adressen (1…, 3…)Jeder Tippfehler wird mit überwältigender Wahrscheinlichkeit erkanntEtwa 1 von 4 Milliarden
Bech32 / Bech32m (BCH-Code)Bitcoin-SegWit- und Taproot-Adressen (bc1…)Garantiert: Jeder Fehler betrifft maximal 4 Zeichen.Weniger als 1 von einer Milliarde
EIP-55 (keccak-256-Groß-/Kleinschreibung)Ethereum-AdressenTippfehler aufgrund des Musters aus Groß- und Kleinbuchstaben.Sehr gering bei Eingaben mit gemischter Schreibweise.

Warum ein Validierungsprogramm auf Ihrem Gerät laufen sollte.

Alles oben Genannte ist eine Berechnung mit bereits vorhandenen Ziffern. Es gibt keinen Grund, warum ein Validierungsprogramm eine Kreditkartennummer, Steuernummer oder Wallet-Adresse an einen Server senden sollte – und sehr gute Gründe dagegen. Jedes Validierungsprogramm auf dieser Seite läuft lokal; die Liste der Offline-Tools fasst sie zusammen, und unser Leitfaden zum Überprüfen, ob ein Tool Ihre Daten hochlädt zeigt, wie Sie das für jede Website in zwanzig Sekunden bestätigen können.

FAQ

Heißt eine gültige Prüfsumme, dass die Nummer echt oder aktiv ist?

Nein. Eine Prüfsumme beweist nur, dass die Ziffern intern konsistent sind – dass die Nummer existieren könnte. Sie kann Ihnen nicht sagen, ob das Konto geöffnet ist, wer es besitzt oder wie hoch sein Saldo ist. Jedes Validierungsprogramm auf dieser Seite weist darauf auf der jeweiligen Seite hin, denn dieser Unterschied ist wichtig.

Wie hoch ist die Wahrscheinlichkeit, dass eine falsche Zahl dennoch durchkommt?

Das hängt vom Schema ab. Eine einzelne Mod-10-Prüfziffer lässt etwa 1 zufälligen Fehler von 10 durchkommen; die IBAN-Mod-97-Prüfung lässt etwa 1 von 97 durch; ein 4-Byte-Base58Check-Prüfsumme lässt etwa 1 von 4 Milliarden durchkommen. Die wichtige Eigenschaft ist, dass alle diese Methoden die häufigsten menschlichen Fehler – ein falscher Ziffer oder zwei vertauschte Ziffern – erkennen.

Warum haben einige Kennungen überhaupt keine Prüfsumme?

Ältere oder einfachere Schemas wurden dafür entwickelt, in einem Register nachgeschlagen zu werden, anstatt offline überprüft zu werden, und einige Nummerierungssysteme sind der Praxis der Prüfsummenbildung einfach vorausgegangen. Bei diesen kann ein Validierungswerkzeug lediglich Länge und Format prüfen.

Ist es sicher, meine Karten- oder Ausweisnummer in einen Validierungswert einzufügen?

Nur wenn die Validierung auf Ihrem Gerät erfolgt. Eine Prüfsumme basiert auf arithmetischen Berechnungen mit bereits vorhandenen Ziffern, daher gibt es keinen berechtigten Grund für einen Validierungswert, diese an einen Server zu senden. Sie können überprüfen, ob ein Tool lokal ausgeführt wird, indem Sie den im Leitfaden zur Überprüfung des Datenuploads beschriebenen Test im Flugmodus durchführen.

Was ist der Unterschied zwischen einer Prüfsumme, einem Hash und der Verschlüsselung?

Eine Prüfsumme ist eine kurze Prüfziffer, die dafür entwickelt wurde, zufällige Tippfehler zu erkennen. Ein kryptografischer Hash ist ein langer Fingerabdruck, der so konstruiert ist, dass selbst eine absichtliche Änderung erkannt werden kann und das Original nicht rekonstruiert werden kann. Die Verschlüsselung transformiert Daten, sodass sie nur mit einem Schlüssel lesbar sind. Base58Check verwendet einen Hash zur Erstellung seiner Prüfsumme – weshalb es so schwer ist, versehentlich einen Fehler einzuschleusen.