Der Luhn-Algorithmus ist gut genug für die Kreditkartenindustrie ...
Wie RichieHindle feststellt, ist der Luhn-Algorithmus ziemlich gut. Es wird einen Fehler oder eine Transposition erkennen (aber nicht korrigieren) (außer einer Transposition von 0 und 9).
Sie könnten auch den Algorithmus für ISBN-Prüfziffern in Erwägung ziehen, obwohl für die alte ISBN die Prüfziffer gilt ist manchmal "X", was ein Problem für Sie sein kann, wenn Sie ganzzahlige Felder verwenden. Die neue ISBN scheint dieses Problem nicht zu haben. Wikipedia geht nicht auf die theoretischen Eigenschaften des Systems ein, aber ich erinnere mich daran, dass ich vor langer Zeit ISBN-Nummern in meinem Coding-Theorie-Kurs studierte, also denke ich, dass sie ziemlich gut sind: -)
Ich weiß, es ist ein wenig spät (nach Postdaten) , aber das erste Mal, dass ich einen Schecknummern-Algorithmus brauchte, war letzte Woche.
Also habe ich mehr Algorithmen überprüft und IMHO scheint die beste Lösung (für nur Ziffern) der Damm-Algorithmus zu sein. Es ist einfach zu implementieren und erkennt die meisten der getesteten Fehler (alle einstelligen Fehler und alle Transpositionsfehler, fast alle Sprungtranspositionsfehler) .
Für mich gab es nur ein einziges Problem, da ich die Prüfziffer nicht nur aus Zahlen, sondern auch aus Zeichen berechnen muss. Es gibt viele Möglichkeiten, Zeichen in Zahlen umzuwandeln, aber die Fehlererkennung wird immer niedriger sein als nur Zahlen.
Für diese Fälle können Sie die ISO_6346 Spezifikation verwenden.
Welcher Algorithmus wird verwendet, um eine Prüfziffer für eine Ziffernliste zu berechnen?
Die Länge der Liste ist zwischen 8 und 12 Ziffern.
siehe auch:
Wie wird ein Verifizierungscode / -nummer generiert?
Verhoeff , es gibt nichts besseres IMO.