Command Palette

Search for a command to run...

Luhn-Algorithmus: Funktionsweise der Kreditkartenvalidierung

Luhn-Algorithmus: Funktionsweise der Kreditkartenvalidierung

T
Toolz Team
|Sep 13, 2026|16 min lesen
Bevorzugen Sie Toolz.dev bei Google

Teil der Sammlung Sicherheit

Kreditkartenvalidierer

Überprüfen Sie eine Kreditkartennummer mit der Luhn-Prüfsumme und erkennen Sie ihr Kartennetzwerk. Validiert nur das Format und kontaktiert niemals eine Bank.

Verwenden Sie die Kreditkartenvalidierer

Ich baue Toolz.dev‘und davor habe ich jahrelang WordPress Plugins und Laravel APIs verschickt, von denen mehrere Zahlungen entgegennehmen mussten Das erste Checkout-Formular, das ich je geschrieben habe, schickte jede falsch eingegebene Kartennummer direkt an das Zahlungsgateway und wartete darauf, dass sie abprallte Es funktionierte, technisch gesehen, aber es war langsam und es brannte durch Gateway-Anfragen auf Nummern, die gar nicht erst hätten gültig sein können Der Fix war peinlich klein: Führen Sie die Luhn-Prüfsumme im Browser aus, bevor Sie sie absenden Diese eine Änderung fing die meisten Tippfehler sofort und stoppte einen Strom sinnloser API-AufrufeDieser Leitfaden handelt von diesem Check, den Präfixregeln, die daneben sitzen, und die Kreditkartenvalidierer Ich habe gebaut, damit man auch nie aus dem Gedächtnis neu implementieren muss.

tl; dr: Ein Kreditkartenprüfer bestätigt, dass eine Zahl strukturell korrekt ist, nicht, dass sie zu einem echten Konto gehört Es führt zwei unabhängige Tests durch: die Luhn-Prüfsumme aus ISO/IEC 7812-1, die fast jeden einstelligen Tippfehler und angrenzende Transposition erfasst, und eine Längen-und-Präfix-Prüfung gegen jedes Netzwerk' s veröffentlichte Emittentenbereiche Eine Zahl kann eins passieren und das andere nicht bestehen, daher werden die beiden Ergebnisse getrennt gemeldet Es läuft vollständig in Ihrem Browser, so dass nie eine Kartennummer hochgeladen wird, und es kann Ihnen nie sagen, ob eine Karte Geld drauf hat Das weiß nur der Emittent.

Was bedeutet es, dass eine Kartennummer gültig ist?

Eine Zahlungskartennummer, formal eine Primärkontonummer oder PAN, ist keine zufällige Ziffernfolge Ihre Struktur wird definiert durch ISO/IEC 7812. Die ersten sechs bis acht Ziffern sind die Emittenten-Identifikationsnummer, oder IIN, die früher Bank-Identifikationsnummer (BIN) genannt wurde, Diese Ziffern kennzeichnen das Netzwerk und die ausstellende Bank Die Ziffern danach bis zum vorletzten sind die individuelle Kontokennung, und die allerletzte Ziffer ist eine Prüfziffer, die mit dem Luhn-Algorithmus berechnet wird.

So hat & quot; valid" zwei getrennte Bedeutungen, und es hilft, sie auseinanderzuhalten Die erste ist, dass die Zahl der Luhn-Prüfsumme gehorcht, was bedeutet, dass die Prüfziffer mit dem Rest der Zahl übereinstimmt Die zweite ist, dass die Zahl die richtige Länge und das richtige Präfix für ein reales Kartennetzwerk hat Eine Zahl kann eine Bedingung erfüllen und die andere nicht. 4111 1111 1111 1112 Hat ein Visa-Präfix und eine Visa-Länge, schlägt aber bei Luhn fehl Eine zufällige sechzehnstellige Zeichenfolge, die zufällig in der richtigen Prüfziffer endet, passiert Luhn, beginnt aber möglicherweise mit einem Präfix, das kein Netzwerk besitzt Ein guter Validator sagt Ihnen, welcher der beiden fehlgeschlagen ist, da der Fix jeweils unterschiedlich ist.

Was keiner der beiden Scheck kann, ist Ihnen zu sagen, dass die Karte echt ist Strukturelle Gültigkeit ist über die Form der Nummer, nicht den Zustand des Kontos dahinter Das Konto könnte nicht existieren, eingefroren sein, sein Limit überschreiten, oder vielleicht vor Jahren geschlossen worden sein Das einzige System, das es weiß, ist die ausstellende Bank, und es antwortet genau einmal, während einer Autorisierungsanfrage in einer Live-Transaktion Alles, was ein browserseitiger Validator tut, ist ein billiger Vorfilter, der läuft, bevor Sie jemals an diesen Punkt kommen.

Wie funktioniert der Luhn-Algorithmus?

Der Luhn-Algorithmus, auch mod-10-Algorithmus genannt, wurde 1960 von Hans Peter Luhn bei IBM patentiert und ist heute gemeinfrei, er ist eine Prüfsumme, das heißt sein ganzer Zweck ist es, zufällige Fehler zu erkennen, keine Sicherheit zu bieten, er funktioniert so, ausgehend von der Stelle ganz rechts und nach links bewegt, verdoppelt man jede zweite Ziffer, ergibt die Verdoppelung eine Zahl größer als neun, so zieht man neun davon ab (was gleichbedeutend ist mit der Addition seiner beiden Ziffern zusammen) Dann summiert man alle Ziffern, die verdoppelten und die unberührten, ist die Summe durch zehn teilbar, geht die Zahl über.

Hier ist der Check on 4111 1111 1111 1111Rechts nach links arbeiten Die Ziffer ganz rechts ist Position eins und wird nicht verdoppelt, jede zweite Ziffer zu verdoppeln ergibt eine Menge von Einsen und Zweien, die Zweien kommen von den verdoppelten Positionen, alle addieren und die Summe landet auf einem Vielfachen von Zehn, so dass die Zahl jede einzelne Ziffer ändert und die Summe fast immer aufhört, ein Vielfaches von Zehn zu sein, was genau die Prüfung nützlich macht.

Der Wert von Luhn ist in dem, was es fängt Es erkennt jeden einstelligen Fehler, was bedeutet, dass jede einzelne Ziffer falsch eingegeben wurde Es fängt auch fast jede Transposition von zwei benachbarten Ziffern, die klassische & quot; Ich habe 21 statt 12 eingegeben" Fehler, mit einer bekannten Ausnahme: es fängt keinen Tausch von 09 und 90(denn beide auf die gleiche gewichtete Summe abbilden Das ist ein echter blinder Fleck, aber es ist ein seltener, und es ist der Grund, warum Luhn eher eine Prüfsumme als eine kryptografische Garantie ist Für die Formularvalidierung ist es mehr als gut genug, und es ist, warum es hinter den Kartenfeldern von im Wesentlichen jeder Kasse im Internet sitzt.

Wie wird das Kartennetzwerk erkannt?

Das Netzwerk wird aus den führenden Ziffern, der IIN, gelesen Jedes Netzwerk besitzt bestimmte Präfixbereiche, und die meisten beschränken auch die Gesamtlänge Der Validator stimmt zuerst mit dem längsten, spezifischsten Präfix überein, da sich einige Bereiche überschneiden Hier sind die Bereiche, die er prüft:

Netz Beginnt mit Gültige Längen Sicherheitscode
Visum 4 13, 16, 19 3
Mastercard 51-55, 2221-2720 16 3
Amerikanischer Express 34, 37 15 4
Entdecken 6011, 65, 644-649, 622126-622925 16, 19 3
Diners Club 300-305, 309, 36, 38-39 14, 16, 19 3
JCB 3528-3589 16-19 3
UnionPay 62 16-19 3
Maestro 50, 56-69 (ausgewählt) 12-19 3

Die Überschneidungen sind der interessante Teil, und wenn man sie falsch macht, kommt es dazu, dass naive Detektoren fehlzünden. Mastercard fügte hinzu 2221-2720 Reichweite im Jahr 2017, so meldet ein zuvor geschriebener Detektor diese Karten als unbekannt Discover besitzt eine schmale Scheibe des 62 Raum, Raum 622126 durchgehend 622925Während UnionPay den Rest besitzt 62Die Reihenfolge, in der Sie sie testen, entscheidet also, ob a 6221 Karte liest sich als Discover oder UnionPay Der Validator testet das spezifische Discover-Fenster vor dem breiten UnionPay-Präfix, sodass beide korrekt landen American Express ist derjenige, der Formatierungscode ausgibt, da er fünfzehn Ziffern verwendet, die mit 4-6-5 gruppiert sind, statt der üblichen vier Vierergruppen, und es verwendet einen vierstelligen Sicherheitscode (die auf der Vorderseite gedruckte CID) anstelle des dreistelligen CVV auf der Rückseite.

So verwenden Sie den Kreditkartenvalidator

Das Tool ist bewusst einfach Man fügt eine Zahl ein und liest das Ergebnis aus, es gibt keinen Submit-Button und nichts zu konfigurieren.

Schritt 1: Geben Sie die Nummer ein

Geben Sie die Kartennummer ein oder fügen Sie sie in das Feld ein. Leerzeichen und Bindestriche werden ignoriert 4111-1111-1111-1111, 4111 1111 1111 1111, und 4111111111111111 Alle identisch validieren Das ist wichtig, weil echte Eingaben in jedem Format ankommen: aus einer Tabellenkalkulation kopiert, eine Karte ausgelesen oder aus einer Testvorrichtung gezogen.

Schritt 2: Lesen Sie das Urteil

Das Ergebnis sagt oben klar aus, ob die Zahl gültig ist, und wenn nicht, nennt es den Grund Darunter werden die beiden Prüfungen getrennt dargestellt: ob die Luhn-Prüfsumme bestanden hat, und ob die Länge mit dem erkannten Netzwerk übereinstimmt, auseinander sehen ist der Punkt Eine Zahl, die an Luhn vorbeigeht, aber an der Länge scheitert, bedeutet fast immer, dass eine Ziffer weggelassen oder hinzugefügt wurde, wohingegen eine Zahl, die an Luhn scheitert, aber die richtige Länge hat, normalerweise bedeutet, dass eine Ziffer einfach falsch ist.

Schritt 3: Überprüfen Sie das erkannte Netzwerk

Das Tool zeigt das Netzwerk an, das es anhand des Präfixes identifiziert hat, die Längen, die das Netzwerk zulässt, und wie lang sein Sicherheitscode sein sollte. Dies ist allein nützlich, wenn Sie ein Formular erstellen und das richtige Kartenlogo anzeigen möchten oder wenn Sie wissen müssen, ob Sie mit einem drei- oder vierstelligen CVV rechnen müssen.

Schritt 4: Kopieren Sie die formatierte oder maskierte Nummer

Sie können die Nummer gruppiert kopieren, wie ihr Netzwerk sie ausgibt, oder eine maskierte Version kopieren, die jede Ziffer außer den letzten vier verbirgt Das maskierte Formular ist das, das Sie in Protokollen, Screenshots und Support-Tickets wünschen, denn das Speichern oder Anzeigen eines vollständigen PAN ist genau das, was Menschen in Schwierigkeiten mit der Einhaltung bringt.

Wo passt die Validierung und wo hört sie auf?

Die ehrliche Rahmung ist, dass ein Validator ein Filter ist, kein Gate Es gehört an die Spitze eines Prozesses, um offensichtlichen Müll billig abzulehnen, und es darf niemals als Beweis für irgendetwas nachgelagert vertraut werden In einem Kassenformular lässt Sie beim Ausführen von Luhn-Client-Seite einen Tippfehler markieren, sobald der Benutzer mit dem Tippen fertig ist, bevor er auf Pay trifft, was eine bessere Erfahrung ist und eine zum Scheitern verurteilte Hin- und Rückfahrt zum Gateway spart. In einer Datenpipeline fängt die Validierung kartenförmiger Felder beschädigte Zeilen auf, bevor sie ein System erreichen, das sie ersticken wird. In Testsuiten benötigen Sie Zahlen, die die die Validierung bestehen, damit sich das Formular so verhält, wie es in der Produktion aussieht, wofür veröffentlichte Testnummern da sind.

Was es nicht tut, ist autorisieren, und das lohnt sich, um eine stumpfe Zahl ist keine Arbeitskarte Eine gültige Zahl ist Das Tool kann kein Guthaben überprüfen, kann nicht bestätigen, dass das Konto existiert, und hat keine Verbindung zu irgendeiner Bank Es kann, und sollte auch nicht, Zahlen generieren, die an echte Konten gebunden sind Die von ihm angebotenen Beispielnummern sind die von Zahlungsanbietern veröffentlichten Standardtestwerte, die Luhn-gültig sind und Netzwerkprüfungen genau bestehen, damit Entwickler ihre Formulare ausüben können, die aber auf nichts Gebührenpflichtiges zuordnen Wenn Sie etwas bauen, das echte Zahlungen berührt, erfolgt die tatsächliche Validierung, ob eine Karte berechnet werden kann, serverseitig über Ihren Zahlungsabwickler, und die Kartendaten selbst sollten tokenisiert werden, damit Ihre eigenen Systeme niemals eine rohe PAN speichern.

Wie ist das im Vergleich zur Validierung auf dem Server?

Beide haben einen Platz, und sie beantworten unterschiedliche Fragen Clientseitige Validierung mit Luhn und Präfixprüfungen ist sofort und privat, sie gibt dem Benutzer Feedback, bevor er absendet, und es kostet Sie nichts Sein Limit ist, dass es nur über Struktur weiß Serverseitige Validierung durch einen Zahlungsprozessor ist das einzige, was bestätigen kann, dass eine Karte echt und kostenpflichtig ist, aber es kostet eine Netzwerkanfrage, es kann Geld pro Autorisierungsversuch kosten, und es passiert, nachdem der Benutzer sich zur Übermittlung verpflichtet hat Das vernünftige Design verwendet beides: Der Browser fängt die Tippfehler und die Formfehler kostenlos auf, und der Server führt die eine Prüfung durch, die wichtig ist, wenn der Benutzer den Client-Check überspringt, macht das Formular langsam; Überspringen bedeutet, dass Sie wirklich nie etwas anderes zusammenstellen. Entwicklerproduktivitätstools Die Zusammenfassung umfasst die anderen Versorgungsunternehmen, die tendenziell daneben leben.

Verwandte Tools und Weiterlesen

Ein Kartenprüfer reist selten alleine, wenn Sie ein Formular oder eine Datenpipeline aushärten, erzeugen Sie normalerweise auch Identifikatoren, Hashwerte und überprüfen andere Arten von Eingaben Die Hash-generator ist, wonach sie greifen, wenn sie einen wert fingerabdruck, anstatt seine form zu validieren, und die Kennwortstärke-Prüfung Wendet dasselbe an & quot; im Browser messen, niemals irgendwo hin senden" Prinzip auf Anmeldeinformationen Auf der Netzwerkseite ist die IP-Subnetzrechner Ist das Begleittool für jeden, der die Infrastruktur baut, auf der eine Kasse läuft.

Für den weiteren Kontext ist die Datenschutz und Online-Tools Leitfaden erklärt, warum die Durchführung sensibler Prüfungen clientseitiger Angelegenheiten und der Anleitung für die Coding-Tools Stellt den Validator in den Kontext des restlichen Tageskits von developer's. Alles auf Toolz.dev läuft in Ihrem Browser, was der ganze Grund ist, warum eine Kartennummer sicher darin eingefügt werden kann: Sie verlässt Ihr Gerät nie.

Häufig gestellte Fragen

Was prüft der Luhn-Algorithmus?

Der Luhn-Algorithmus ist eine Mod-10-Prüfsumme, die überprüft, ob eine Zahl nicht falsch eingegeben wurde. Er verdoppelt jede zweite Ziffer von rechts, subtrahiert neun von jedem Ergebnis über neun, summiert alle Ziffern und bestätigt, dass die Summe durch zehn teilbar ist. Es fängt jeden einstelligen Fehler und fast jeden Austausch zweier benachbarter Ziffern auf, aber es ist eine Prüfsumme, kein Sicherheitsmerkmal und es kann nicht beweisen, dass eine Karte echt ist.

Bedeutet eine gültige Zahl, dass die Karte funktioniert?

Nein. Eine gültige Zahl bedeutet nur, dass die Ziffern strukturell korrekt sind, die Prüfsumme also besteht und die Länge mit dem Netzwerk übereinstimmt Ob das Konto existiert, einen Saldo hat, oder noch aktiv ist, kann vom Kartenaussteller nur während einer echten Autorisierung bestätigt werden, Strukturgültigkeit ist ein Vorfilter, kein Nachweis einer brauchbaren Karte.

Wie wird die Kartenmarke an der Nummer erkannt?

Die Marke wird aus den ersten Ziffern, der Emittenten-Identifikationsnummer, gelesen Visa beginnt mit 4, Mastercard mit 51-55 oder 2221-2720, American Express mit 34 oder 37, und so weiter, jedes Netzwerk erlaubt auch nur bestimmte Gesamtlängen, so dass der Validator das Präfix und die Länge gemeinsam prüft und das Netzwerk meldet, dem es entspricht.

Ist es sicher, eine Kartennummer in dieses Tool einzugeben?

Ja. Die Nummer wird komplett in Ihrem Browser verarbeitet und niemals hochgeladen, protokolliert oder übertragen, Sie können dies durch eine Trennung vom Internet bestätigen, da der Validator weiterhin ohne Verbindung arbeitet. Allerdings sollten Sie dennoch vermeiden, eine echte Kartennummer überall einzugeben, wo Sie dies nicht benötigen, und die veröffentlichten Testnummern für die Entwicklung bevorzugen.

Warum besteht meine echte Karte Luhn, fällt aber bei der Längenprüfung durch?

Das heißt meistens, dass beim Tippen eine Ziffer weggefallen oder hinzugefügt wurde Die Luhn-Prüfsumme kann auf einer Zahl falscher Länge zufällig passieren, das Tool prüft also die Länge unabhängig gegen das erkannte Netzwerk Geben Sie die volle Zahl erneut ein und beide Prüfungen sollten gemeinsam durchlaufen werden.

Was sind Testkartennummern und warum gibt es sie?

Prüfkartennummern wie 4111 1111 1111 1111 Werden von Zahlungsanbietern veröffentlicht, damit Entwickler Kassenformulare ausüben können Sie sind Luhn-gültig und bestehen Netzwerkprüfungen, so dass sich das Formular genau so verhält, wie es in der Produktion sein wird, aber sie sind auf kein echtes Konto abgebildet und können niemals belastet werden Sie sind das Richtige, um überall zu verwenden, wo Sie sonst versucht wären, eine echte Karte einzugeben.

Was ist der Unterschied zwischen dem CVV und der Kartennummer?

Die Kartennummer ist die lange primäre Kontonummer, die das Konto identifiziert Das CVV, CVC oder CID ist der kurze Sicherheitscode, drei Ziffern für die meisten Netzwerke und vier für American Express, getrennt von der Nummer gedruckt Dieses Tool validiert nur die Kartennummer; es überprüft nicht den Sicherheitscode, der vom Emittenten während einer Transaktion überprüft wird.

Kann dieser Validator funktionierende Kreditkarten generieren?

Nein. Es prüft nur Zahlen, die Sie eingeben, und es hat keine Möglichkeit, eine an ein Live-Konto gebundene Zahl zu produzieren. Die von ihm angebotenen Beispielzahlen sind die standardmäßig veröffentlichten Testwerte, die kein echtes Konto erreichen. Zahlen für eine echte Karte zu generieren, ist nichts, was ein Strukturprüfer tun kann, und es ist nichts, was dieses Tool versucht.


Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!