Der Luhn-Algorithmus (Hans Peter Luhn, IBM 1954) ist ein einfacher Prüfzifferalgorithmus zur Erkennung von Tippfehlern in Nummernreihen. Er wird bei Kreditkartennummern, IMEI-Nummern (Mobilgeräte) und deutschen Steuer-IDs eingesetzt. Neben der reinen Luhn-Prüfung erkennt die Unit den Kartentyp (Visa, Mastercard, Amex, Discover, Maestro, UnionPay etc.) anhand des Nummernpräfixes.
| Name | Wert | Kartentyp |
|---|---|---|
CARD_UNKNOWN | 0 | Unbekannt |
CARD_VISA | 1 | Visa |
CARD_MASTERCARD | 2 | Mastercard |
CARD_AMEX | 3 | American Express |
CARD_DISCOVER | 4 | Discover |
CARD_DINERS | 5 | Diners Club |
CARD_JCB | 6 | JCB |
CARD_MAESTRO | 7 | Maestro |
CARD_UNIONPAY | 8 | UnionPay |
import std.validate.luhn;
// Kreditkarte validieren
var cc: pchar := "4532015112830366";
if (CreditCardValidate(cc) = 0) {
var typ: int64 := CreditCardType(cc);
log_info(CreditCardTypeName(typ)); // "Visa"
log_info(CreditCardFormat(cc)); // "4532 0151 1283 0366"
log_info(CreditCardMask(cc)); // "XXXX XXXX XXXX 0366"
}
// Luhn-Algorithmus direkt
if (LuhnValidate("79927398713") = 0) {
log_info("Luhn OK");
}
// IMEI und deutsche Steuer-ID
var imeiOk: int64 := IMEIValidate("490154203237518");
var taxOk: int64 := GermanTaxIDValidate("81872495633");
// Testnummer generieren
var testVisa: pchar := CreditCardGenerateTest(CARD_VISA);
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
LuhnValidate(number: pchar): int64 | pub | Nummer per Luhn-Algorithmus validieren; gibt 0 bei Erfolg zurück |
LuhnCheckDigit(number: pchar): int64 | pub | Luhn-Prüfziffer für gegebene Nummer berechnen |
CreditCardValidate(number: pchar): int64 | pub | Kreditkartennummer vollständig validieren (Länge + Luhn) |
CreditCardType(number: pchar): int64 | pub | Kartentyp anhand Nummernpräfix erkennen (CARD_Xxx-Konstante) |
CreditCardTypeName(cardType: int64): pchar | pub | Kartentyp-Konstante als lesbaren Namen liefern |
CreditCardFormat(number: pchar): pchar | pub | Kreditkartennummer in Gruppen formatieren (z.B. „4532 0151 …“) |
CreditCardMask(number: pchar): pchar | pub | Kreditkartennummer maskieren, letzte 4 Ziffern sichtbar |
CreditCardGenerateTest(cardType: int64): pchar | pub | Gültige Testnummer für angegebenen Kartentyp generieren |
IMEIValidate(imei: pchar): int64 | pub | 15-stellige IMEI-Gerätenummer validieren |
GermanTaxIDValidate(taxId: pchar): int64 | pub | Deutsche Steueridentifikationsnummer (11 Stellen) validieren |
Letzte Aktualisierung: 2026-05-22