Finanzen

Wie der Luhn-Algorithmus Kreditkartennummern prüft

7 Min. Lesezeit

Eine Kreditkartennummer ist nach Luhn gültig, wenn du jede zweite Ziffer von rechts verdoppelst, zweistellige Ergebnisse um 9 reduzierst und die Summe aller Ziffern durch 10 teilbar ist. Genau diese Prüfsumme steckt in jeder Visa-, Mastercard- oder Amex-Nummer, und sie fängt einen vertippten Zahlendreher ab, noch bevor die Zahlung überhaupt beim Kartennetzwerk landet.

Die Regel, kurz und präzise

Der Algorithmus stammt vom IBM-Ingenieur Hans Peter Luhn und ist seit Jahrzehnten Industriestandard für Kartennummern. So funktioniert er:

  1. Starte bei der letzten Ziffer rechts und gehe von dort nach links.
  2. Verdopple jede zweite Ziffer (Position 2, 4, 6, … von rechts gezählt).
  3. Ergibt das Verdoppeln eine zweistellige Zahl, ziehe 9 ab (das entspricht dem Addieren der beiden Einzelziffern, etwa 8×2=16 wird zu 16-9=7).
  4. Addiere alle Ziffern, die verdoppelten und die unveränderten.
  5. Ist die Gesamtsumme durch 10 teilbar, ist die Nummer Luhn-gültig.

Kein kryptografisches Verfahren, sondern reine Prüfziffernarithmetik, aber genau dafür entwickelt: einen einzelnen Tippfehler sofort im Formular zu erkennen, statt ihn erst nach einem fehlgeschlagenen Zahlungsversuch zu entdecken.

Rechenbeispiel: eine echte Testnummer Schritt für Schritt

Nimm die bekannte Visa-Testnummer 4111 1111 1111 1111, 16 Ziffern, öffentlich dokumentiert und genau für solche Tests gedacht. Von rechts gezählt ist Position 16 (also die führende 4) eine gerade Position und wird deshalb verdoppelt.

Ziffer (von links)Position von rechtsGerade Position (verdoppeln)?Beitrag zur Summe
416ja4×2=8
115nein1
114ja1×2=2
113nein1
112ja1×2=2
111nein1
110ja1×2=2
19nein1
18ja1×2=2
17nein1
16ja1×2=2
15nein1
14ja1×2=2
13nein1
12ja1×2=2
11nein1

Sieben der 15 Einsen sitzen auf einer geraden Position und werden zu 2, macht zusammen 14. Die führende 4 wird ebenfalls verdoppelt und liefert 8 (4×2=8, keine Reduktion nötig, das Ergebnis ist bereits einstellig). Die acht Einsen auf ungeraden Positionen zählen unverändert mit 8 zur Summe. Macht in Summe 14 + 8 + 8 = 30. 30 ist durch 10 teilbar, die Nummer besteht die Luhn-Prüfung. Das deckt sich mit der Realität: 4111 1111 1111 1111 ist eine echte, gültige Visa-Testnummer, die in Sandbox-Umgebungen von Zahlungsanbietern verwendet wird.

Warum ein einziger Tippfehler die Prüfung sofort kippt

Jetzt ändern wir eine einzige Ziffer: aus der letzten 1 wird eine 2, also 4111 1111 1111 1112, ein klassischer Vertipper am Nummernende. Diese letzte Ziffer sitzt auf Position 1 von rechts, einer ungeraden Position, wird also nicht verdoppelt und zählt mit ihrem eigenen Wert in die Summe. Vorher trug sie mit 1 zur Summe bei, jetzt trägt sie mit 2 bei, macht 30 + 1 = 31.

31 ist nicht durch 10 teilbar. Die Prüfung schlägt fehl, sofort und ohne dass die Nummer je bei einer Bank oder einem Zahlungsnetzwerk ankommen musste. Genau das ist der praktische Nutzen von Luhn in einem Checkout-Formular: ein simpler Tippfehler wird lokal im Browser erkannt, bevor überhaupt ein Request rausgeht.

Bekannte Testnummern nach Netzwerk

Diese Nummern sind öffentlich dokumentiert, unter anderem in den Sandbox-Dokumentationen von Stripe und PayPal, und werden von Entwicklern weltweit zum Testen von Checkout-Formularen verwendet. Es handelt sich um keine echten Kundenkarten.

NetzwerkTestnummerZiffern
Visa4111 1111 1111 111116
Visa (Alternative)4012 8888 8888 188116
Mastercard5555 5555 5555 444416
American Express3782 822463 1000515
Discover6011 1111 1111 111716

Auffällig: American Express weicht sowohl bei der Ziffernanzahl (15 statt 16) als auch bei der Gruppierung (4-6-5 statt 4-4-4-4) vom Rest ab. Das ist kein Fehler in der Tabelle, sondern ein reales Format-Detail von Amex-Kartennummern.

Teste es mit deiner eigenen Nummer

Statt die Schritte von Hand durchzurechnen, kannst du eine Nummer direkt unten eintippen. Das Tool prüft Format, Netzwerk und Luhn-Prüfsumme live im Browser:

Kartennetzwerk -
Luhn-Prüfsumme -

Was Luhn dir NICHT sagt

Eine bestandene Luhn-Prüfung beweist ausschließlich, dass die Ziffernfolge mathematisch korrekt aufgebaut ist. Sie sagt nichts darüber aus, ob die Karte real existiert, ob sie aktiv ist, ob sie abgelaufen ist oder ob überhaupt Guthaben beziehungsweise ein Kreditrahmen dahintersteckt. Genau diese Fragen kann ausschließlich die ausstellende Bank beim tatsächlichen Zahlungsversuch beantworten, über den CVV, das Ablaufdatum und letztlich die Autorisierung durch das Kartennetzwerk.

Für QA-Ingenieure und Entwickler, die eine Stripe- oder PayPal-Sandbox anbinden, ist dieser Unterschied entscheidend: Schlägt ein Testcheckout fehl, lohnt sich zuerst der Luhn-Check. Ist die eingegebene Nummer schon Luhn-ungültig, liegt der Fehler im eigenen Formular oder Testdatensatz. Ist sie Luhn-gültig und die Zahlung scheitert trotzdem, liegt das Problem woanders, etwa an der Sandbox-Konfiguration oder am verwendeten CVV.

Häufige Fehler und Grenzfälle

Annehmen, Luhn erkenne jeden denkbaren Fehler. Das stimmt nicht ganz. Luhn fängt praktisch jeden einzelnen falsch getippten Ziffernwert und die meisten vertauschten Nachbarziffern zuverlässig ab, hat aber eine bekannte Lücke: Vertauschst du zwei benachbarte Ziffern, deren Differenz genau 9 beträgt, also eine 0 und eine 9 nebeneinander, bleibt die Prüfsumme unverändert, und der Fehler fliegt nicht auf. Das ist eine dokumentierte Eigenschaft des Verfahrens, kein Bug im Tool, und der Grund, warum manche Systeme Luhn zusätzlich mit einer Längen- oder Präfixprüfung kombinieren.

Leerzeichen oder Bindestriche für einen Fehler halten. Kartennummern werden meist in Vierergruppen dargestellt, die Formatierung gehört nicht zur eigentlichen Nummer und wird vor der Prüfung entfernt. Ein gutes Validierungstool erledigt das automatisch.

Eine bestandene Luhn-Prüfung mit einer gültigen, aktiven Karte verwechseln. Wie oben beschrieben: Luhn prüft nur die Form, nicht den Inhalt. Für eine echte Autorisierung ist immer die ausstellende Bank zuständig.

Testnummern mit echten Kartendaten verwechseln. Die fünf Nummern in der Tabelle oben sind öffentlich bekannte Testwerte ohne reale Zahlungsfunktion. Sie eignen sich zum Prüfen von Formularlogik, aber nicht als Ersatz für eine echte Zahlungsintegration mit Autorisierung.

Häufig gestellte Fragen

Ist der Luhn-Algorithmus dasselbe wie eine Kreditkartenprüfung durch die Bank? Nein. Luhn ist eine reine Formatprüfung, die lokal und ohne Netzwerkzugriff läuft. Sie bestätigt nur, dass die Ziffernfolge mathematisch korrekt aufgebaut ist. Ob die Karte existiert, aktiv ist und über ausreichend Guthaben oder Kreditrahmen verfügt, kann ausschließlich die ausstellende Bank während der eigentlichen Autorisierung feststellen.

Warum verwenden alle großen Kartennetzwerke dasselbe Verfahren? Weil Luhn 1954 patentiert und seither offen als Industriestandard übernommen wurde. Visa, Mastercard, American Express und Discover bauen ihre Kartennummern alle so auf, dass die letzte Ziffer die Luhn-Prüfsumme erfüllt, das erlaubt es jedem System, eine offensichtlich falsch getippte Nummer sofort zu erkennen, unabhängig vom Netzwerk.

Kann ich mit Luhn prüfen, ob eine Karte gestohlen oder gesperrt ist? Nein, dafür ist das Verfahren nicht gedacht. Luhn prüft ausschließlich die mathematische Struktur der Nummer. Informationen zu Sperrung, Kartenstatus oder Betrugsverdacht liegen ausschließlich bei der ausstellenden Bank und werden erst beim tatsächlichen Zahlungsversuch abgefragt.

Warum hat American Express 15 statt 16 Ziffern? Das ist ein Format-Unterschied, der schon lange vor Luhn festgelegt wurde und nichts mit der Prüfsumme selbst zu tun hat. American Express nutzt traditionell ein 15-stelliges Nummernformat mit der Gruppierung 4-6-5, während Visa, Mastercard und Discover 16-stellige Nummern in Vierergruppen verwenden. Der Luhn-Algorithmus funktioniert bei beiden Längen identisch, nur die Anzahl der Ziffern, die letztlich in die Summe eingehen, unterscheidet sich.

Kreditkartennummer-Validator
Probieren Sie es jetzt selbst mit dem vollständigen Tool.
Jetzt ausprobieren