Der Luhn-Algorithmus oder auch bekannt als Luhn-Formel, wurde in den 1960er Jahren von Hans Peter Luhn entwickelt um Identifkationsnummern auf Gültigkeit zu prüfen.

Der Algorithmus dient als eine simple Methode, um gültige Nummern von zufälligen Nummernkombinationen zu unterscheiden.

Der Luhn-Algorithmus erkennt jeden Fehler an einzelnen Ziffern, ebenso wie die meisten Vertauschungen nebeneinanderstehender Ziffern.

Berechnung: Gegeben ist ein Zahl, die Berechnung der Prüfsumme beginnt bei der letzten Ziffer der Zahl. Alle Zahlen werden zusammenaddiert, wobei jede 2. Zahl der Zahlenfolge mit 2 multipliziert wird. Kommt bei der Multiplikation eine 2-stellige Zahl heraus, wird die Quersumme auf die bisherige Prüfsumme addiert.

Beispiele:

5432 ergibt 2 + 6 (2*3) + 4 + 1 (2*5=10 => 1) = 13. Die Prüfsumme ist 13. Die Zahl 5432 ist nach dem Luhn-Algorithmus nicht gültig, da die Prüfsumme nicht durch 10 teilbar ist. Daher wird der Algorithmus auch „mod 10“-Algorithmus oder „Modulo 10“-Algorithmus genannt.

7963 ergibt 3 + 3 + 9 + 5 = 20. Da die Zahl durch 10 teilbar ist, ist die Zahl 7963 eine gültige Nummer nach dem Algorithmus von Luhn.

Java-Code für die Berechnung von Luhn:

public static boolean check(int[] digits) {
  int sum = 0;
  int length = digits.length;
  for (int i = 0; i < length; i++) {
    // Ziffern in umgekehrter Reihenfolge holen
    int digit = digits[length - i - 1];

    // jede 2. Ziffer verdoppeln
    if (i % 2 != 0) ) {
      digit *= 2;
    }

    // falls die Zahl zweistellig ist, die Quersumme nehmen
    sum += digit > 9 ? digit - 9 : digit;
  }
  return sum % 10 == 0;
}

 Antworten

   
Impressum Suffusion theme by Sayontan Sinha