Skip to main content
CheckTown
Validatoren

Kreditkarten-Validator: Wie der Luhn-Algorithmus ungültige Nummern erkennt

Veröffentlicht 6 Min. Lesezeit
In diesem Artikel

Was ist Kreditkartenvalidierung?

Die Kreditkartenvalidierung ist der Prozess, mit dem geprüft wird, ob eine Kartennummer strukturell gültig ist, bevor eine Transaktion versucht wird. Dazu gehören die Prüfung des Nummernformats, die Anwendung des Luhn-Prüfsummenalgorithmus und die Erkennung des Kartennetzwerks (Visa, Mastercard, Amex usw.) anhand der ersten Ziffern.

Validierung ist nicht dasselbe wie Autorisierung. Eine gültige Kartennummer bedeutet, dass Format und Prüfsumme korrekt sind – sie bestätigt nicht, dass die Karte existiert, gedeckt ist oder der Person gehört, die sie verwendet. Eine echte Autorisierung erfordert die Kontaktaufnahme mit dem Kartenherausgeber über das Zahlungsnetzwerk.

So funktioniert der Luhn-Algorithmus

Der Luhn-Algorithmus (auch Mod-10-Algorithmus genannt) ist eine einfache Prüfsummenformel, die 1954 von Hans Peter Luhn erfunden wurde. Er erkennt zufällige Fehler in Kartennummern – vertauschte Ziffern, einzelne Zahlendreher und die meisten gängigen Tippfehler. So funktioniert er Schritt für Schritt.

  • Verdopple ausgehend von der rechtesten Ziffer (Prüfziffer) jede zweite Ziffer nach links
  • Ergibt die Verdopplung eine Zahl größer als 9, ziehe 9 vom Ergebnis ab (z. B. 8 x 2 = 16, dann 16 - 9 = 7)
  • Addiere alle Ziffern – sowohl die verdoppelten/angepassten als auch die unveränderten
  • Ist die Summe durch 10 teilbar (Mod 10 ergibt 0), ist die Nummer nach Luhn gültig

Zum Beispiel die Nummer 4532015112830366: Nach Anwendung des Algorithmus beträgt die Ziffernsumme 40, was durch 10 teilbar ist, sodass sie die Luhn-Prüfung besteht. Dieser Algorithmus erkennt etwa 95 % der einstelligen Fehler und alle Vertauschungsfehler benachbarter Ziffern.

Kostenlos testen – keine Registrierung erforderlich

Kreditkartennummer validieren →

Kartentyperkennung anhand der BIN

Die Bank Identification Number (BIN) – die ersten 6 bis 8 Ziffern einer Kartennummer – identifiziert das Kartennetzwerk und die ausgebende Bank. Jedes Netzwerk hat eigene Präfixe und Längenanforderungen.

  • Visa – beginnt mit 4, typischerweise 16 Ziffern (einige ältere Karten haben 13)
  • Mastercard – beginnt mit 51–55 oder 2221–2720, immer 16 Ziffern
  • American Express – beginnt mit 34 oder 37, immer 15 Ziffern
  • Discover – beginnt mit 6011, 65 oder 644–649, immer 16 Ziffern

Häufige Anwendungsfälle

Die clientseitige Kreditkartenvalidierung erfüllt in Webanwendungen und Geschäftsprozessen mehrere praktische Zwecke.

  • E-Commerce-Checkout – validiere das Kartenformat vor der Übermittlung an den Zahlungsdienstleister, um fehlgeschlagene Transaktionen und API-Aufrufe zu reduzieren
  • UX von Zahlungsformularen – zeige das Kartentyp-Icon (Visa, Mastercard usw.) in Echtzeit an, während der Nutzer tippt, und hebe Fehler sofort hervor
  • Betrugsprävention – fange offensichtlich ungültige Nummern ab, bevor sie deinen Zahlungs-Gateway erreichen, und senke so die Bearbeitungsgebühren für abgelehnte Transaktionen
  • Erzeugung von Testkarten – Entwickler verwenden Luhn-gültige Testnummern (wie 4111 1111 1111 1111 für Visa), um Zahlungsabläufe ohne echte Karten zu testen

Sicherheitsaspekte

Die Kreditkartenvalidierung ist eine Formatprüfung, keine Sicherheitsmaßnahme. Ihre Grenzen zu verstehen ist entscheidend für den Aufbau sicherer Zahlungssysteme.

  • Die clientseitige Validierung fängt Tippfehler ab, kann aber gestohlene oder gesperrte Karten nicht erkennen – wickle Zahlungen immer über einen PCI-DSS-konformen Zahlungs-Gateway ab
  • Speichere niemals vollständige Kartennummern – nutze Tokenisierungsdienste deines Zahlungsanbieters (Stripe, Braintree, Adyen), um Kartendaten durch sichere Tokens zu ersetzen
  • Die PCI-DSS-Konformität verlangt, dass Karteninhaberdaten niemals deine Server berühren – nutze gehostete Zahlungsfelder oder weiterleitungsbasierte Checkout-Abläufe

Häufig gestellte Fragen

Kann der Luhn-Algorithmus falsch-positive Ergebnisse liefern?

Ja. Der Luhn-Algorithmus validiert nur die Prüfsumme – er bestätigt, dass die Nummer mathematisch konsistent ist, nicht dass eine echte Karte mit dieser Nummer existiert. Du kannst unendlich viele Luhn-gültige Nummern erzeugen, die keiner ausgegebenen Karte entsprechen. Deshalb muss auf die Luhn-Validierung stets eine tatsächliche Autorisierung über das Kartennetzwerk folgen.

Gelten für virtuelle Kartennummern dieselben Regeln?

Ja. Virtuelle Kartennummern, die von Banken und Diensten wie Apple Pay, Google Pay oder Privacy.com erzeugt werden, folgen denselben BIN-Präfix- und Luhn-Prüfsummenregeln wie physische Karten. Es sind gültige Kartennummern, die von denselben Netzwerken ausgegeben werden – der einzige Unterschied ist, dass sie temporär, einmalig oder auf bestimmte Händler beschränkt sein können.

Welche Testkartennummern kann ich für die Entwicklung verwenden?

Zahlungsdienstleister stellen bestimmte Testnummern bereit: Visa 4111 1111 1111 1111, Mastercard 5500 0000 0000 0004, Amex 3782 822463 10005, Discover 6011 1111 1111 1117. Diese bestehen die Luhn-Validierung und werden von Test-/Sandbox-Umgebungen erkannt. Verwende zum Testen niemals echte Kartennummern – nutze auch in der Entwicklung ausschließlich offizielle Testnummern deines Zahlungsanbieters.

Verwandte Tools