Luhn-Algorithmus-Rechner - Kreditkarten & IMEI validieren
Kostenloser Luhn mod 10 Rechner zur Kreditkartenvalidierung, IMEI-Prüfung und ID-Verifizierung. Validieren Sie Nummern sofort online oder generieren Sie Testdaten.
Luhn-Algorithmus-Rechner
Überprüfen Sie, ob Ihre Nummer die Luhn-Mod-10-Validierung besteht
Dokumentation
Was ist der Luhn-Algorithmus?
Der Luhn-Algorithmus, auch Mod-10-Algorithmus genannt, ist eine Formel, die prüft, ob eine Ziffernfolge eine gültige Identifikationsnummer sein könnte. Er dient dazu, Tippfehler in Kreditkartennummern, IMEI-Nummern von Mobiltelefonen und anderen Kennnummern zu erkennen, bevor sie einen Fehler verursachen. Der IBM-Ingenieur Hans Peter Luhn beschrieb das Verfahren in einem im Jahr 1954 eingereichten Patent.
Der Algorithmus beweist nicht, dass eine Nummer echt oder aktiv ist. Er bestätigt lediglich, dass die Ziffern dem erwarteten Muster folgen. Eine Kartennummer kann die Luhn-Prüfung bestehen und trotzdem gefälscht, abgelaufen oder nicht gedeckt sein.
So wird eine Luhn-Prüfsumme berechnet
Die Prüfung erfolgt anhand der Ziffern einer Nummer, die von rechts nach links gelesen werden.
- Beginnend mit der zweitletzten Ziffer wird jede zweite Ziffer verdoppelt.
- Ergibt die Verdoppelung einer Ziffer eine Zahl größer als 9, wird 9 davon abgezogen. (Das entspricht der Addition der beiden Ziffern des Ergebnisses; aus 16 wird also 1 + 6 = 7 oder gleichwertig 16 − 9 = 7.)
- Alle Ziffern werden addiert: die verdoppelten (nach der Anpassung) und die unverändert gebliebenen.
- Ist die Gesamtsumme durch 10 teilbar, ist die Nummer gültig. Andernfalls ist sie ungültig.
Wenn ein Unternehmen neue ID-Nummern vergibt, verwendet es dieselben Schritte in umgekehrter Reihenfolge. Es nimmt alle Ziffern außer der letzten, führt die Prüfung durch und wählt anschließend die letzte „Prüfziffer“ so, dass die Gesamtsumme durch 10 teilbar ist.
Eine Kartennummer validieren
Nehmen Sie die Testnummer 4532015112830366.
- Ziffern von rechts nach links: 6, 6, 3, 0, 3, 8, 2, 1, 1, 5, 1, 0, 2, 3, 5, 4
- Jede zweite Ziffer verdoppeln: 6, 12, 3, 0, 3, 16, 2, 2, 1, 10, 1, 0, 2, 6, 5, 8
- Von jedem Ergebnis über 9 9 abziehen: 6, 3, 3, 0, 3, 7, 2, 2, 1, 1, 1, 0, 2, 6, 5, 8
- Addieren: 6+3+3+0+3+7+2+2+1+1+1+0+2+6+5+8 = 50
- 50 ist durch 10 teilbar, daher ist die Nummer gültig.
Eine ungültige Nummer
Nehmen Sie 490154203237517, eine 15-stellige Nummer im Format von IMEI-Nummern.
Die gleichen Schritte ergeben eine Summe von 59. Da 59 nicht durch 10 teilbar ist, ist diese Nummer ungültig.
Um sie in eine gültige Nummer umzuwandeln, muss nur die letzte Ziffer geändert werden. Das Prüfen jeder möglichen letzten Ziffer zeigt, dass eine letzte Ziffer von 8 die Summe auf 60 erhöht, das durch 10 teilbar ist. Somit ist 490154203237518 eine gültige Luhn-Nummer, während jede andere letzte Ziffer von 0 bis 9 (außer 8) eine ungültige Nummer ergibt.
Wo der Luhn-Algorithmus verwendet wird
- Zahlungskarten. Visa, Mastercard, American Express und andere Netzwerke erstellen ihre Kartennummern so, dass die vollständige Nummer die Luhn-Prüfung besteht. Zahlungsformulare können damit eine falsch eingegebene Ziffer erkennen, bevor sie einen Zahlungsdienstleister kontaktieren.
- IMEI-Nummern. Die 15-stellige Kennung, die Mobiltelefonen und anderen Mobilfunkgeräten zugewiesen wird, enthält eine Luhn-Prüfziffer.
- Kanadische Sozialversicherungsnummern. Die 9-stellige SIN verwendet dieselbe Prüfung.
- US-amerikanische National Provider Identifier (NPI). Gesundheitsdienstleister in den Vereinigten Staaten erhalten eine 10-stellige NPI, die mit einer auf Luhn basierenden Prüfung validiert wird.
Was der Luhn-Algorithmus nicht erkennt
Der Algorithmus erkennt immer eine einzelne falsch eingegebene Ziffer, unabhängig davon, um welche Ziffer es sich handelt oder an welcher Stelle sie steht. Er erkennt außerdem jeden Tausch benachbarter Ziffern (etwa die Eingabe von „39“ statt „93“), außer in einem bestimmten Fall: dem Tausch einer 0 und einer 9, die nebeneinander stehen, etwa wenn „09“ zu „90“ wird.
Außerdem erkennt er drei „Zwillingsfehler“ nicht, bei denen ein wiederholtes Ziffernpaar durch ein anderes wiederholtes Ziffernpaar ersetzt wird: 22 wird als 55 gelesen, 33 als 66 und 44 als 77. Da diese Lücken bekannt und begrenzt sind, eignet sich die Luhn-Prüfung zuverlässig zum Erkennen gewöhnlicher Tippfehler, gilt jedoch allein nicht als vollständiges Fehlererkennungssystem.
Luhn ist keine Sicherheitsprüfung
Luhn wurde entwickelt, um versehentliche Fehler bei der Dateneingabe zu erkennen, nicht um Betrug aufzudecken. Eine Nummer, die die Prüfung besteht, ist lediglich mathematisch korrekt aufgebaut. Die tatsächliche Zahlungssicherheit beruht auf weiteren Ebenen, die nach der Luhn-Prüfung hinzukommen, etwa dem CVV-Code der Karte, der Adressprüfung und der 3-D-Secure-Authentifizierung. Luhn ist einfach der erste und kostengünstigste Filter, der vor diesen langsameren Prüfungen ausgeführt wird.
Eine Nummer in JavaScript validieren
1function isValidLuhn(number) {
2 const digits = number.replace(/\D/g, '').split('').map(Number);
3 let sum = 0;
4 let doubleDigit = false;
5 for (let i = digits.length - 1; i >= 0; i--) {
6 let d = digits[i];
7 if (doubleDigit) {
8 d *= 2;
9 if (d > 9) d -= 9;
10 }
11 sum += d;
12 doubleDigit = !doubleDigit;
13 }
14 return sum % 10 === 0;
15}
16Häufig gestellte Fragen
Wofür wird der Luhn-Algorithmus verwendet?
Er prüft, ob eine Identifikationsnummer, etwa eine Kreditkartennummer, eine IMEI-Nummer oder eine kanadische SIN, in sich schlüssig ist. Er erkennt falsch eingegebene oder vertauschte Ziffern, bevor sie einen Verarbeitungsfehler verursachen.
Wie genau erkennt der Luhn-Algorithmus Fehler?
Er erkennt jede einzelne falsch eingegebene Ziffer und nahezu jeden Fall vertauschter benachbarter Ziffern. Der einzige Tausch, den er nicht erkennt, betrifft eine 0 und eine 9, die nebeneinander stehen. Außerdem erkennt er drei bestimmte „Zwillingsfehler“ nicht: 22 statt 55, 33 statt 66 und 44 statt 77.
Bedeutet eine gültige Luhn-Nummer, dass die Karte echt ist?
Nein. Die Prüfung bestätigt lediglich, dass die Ziffern dem erwarteten Muster entsprechen. Sie sagt nichts darüber aus, ob die Karte existiert, aktiv ist oder über Guthaben verfügt. Unternehmen führen dafür zusätzliche Prüfungen durch, etwa anhand eines CVV-Codes.
Kann die Luhn-Prüfung ohne Computer durchgeführt werden?
Ja. Sie erfordert nur Verdoppelung, Subtraktion und Addition und kann daher von Hand oder mit einem einfachen Taschenrechner durchgeführt werden. Das gehörte zum ursprünglichen Konzept, das für die Zeit der Lochkarten entwickelt wurde, bevor digitale Computer weit verbreitet waren.
Warum wird er als Modulo-10-Algorithmus bezeichnet?
Weil im letzten Schritt geprüft wird, ob die Summe ohne Rest durch 10 teilbar ist, was in der Mathematik als „sum mod 10 = 0“ geschrieben wird. „Mod“ ist die Kurzform von modulo, dem nach einer Division verbleibenden Rest.
Wer hat den Luhn-Algorithmus erfunden?
Hans Peter Luhn, ein Ingenieur bei IBM, beschrieb ihn in einer im Jahr 1954 eingereichten Patentanmeldung (erteilt im Jahr 1960 als US-Patent 2.950.048). Er ist außerdem für frühe Arbeiten zur computergestützten Textindexierung bekannt.
Referenzen
- Hans Peter Luhn (IBM). Computer for Verifying Numbers, US-Patent 2.950.048. US-Patent 2.950.048 bei Google Patents — Luhns Patent, angemeldet am 6. Januar 1954, erteilt am 23. August 1960.
- 3GPP / ETSI. TS 123 003: Numbering, addressing and identification. ETSI TS 123 003 V17.8.0 — die IMEI-Prüfziffer wird mit der Luhn-Formel berechnet.
- Centers for Medicare & Medicaid Services. Requirements for National Provider Identifier (NPI) and NPI Check Digit. CMS-Anforderungen an die NPI-Prüfziffer — die NPI-Prüfziffer verwendet die Luhn-Formel mit Modulus 10, die auch für Nummern von Kartenausstellern genutzt wird.