Der Luhn-Algorithmus, auch bekannt als "mod 10"-Algorithmus dient zur einfachen Prüfung von Identifikationsnummern, wie bspw. Kreditkartennummern oder auch 16-stellige HappyDigits-Nummern. Es handelt sich hierbei um ein einfaches Prüfverfahren, um die syntaktische Korrektheit der Identifikationsnummer zu bestätigen. Es kann somit im Vorfeld eine gültige Nummer von einer zufälligen Nummer unterschieden werden. Der Luhn-Algorithmus
''' <summary> ''' Luhn-Algorithmus zum Prüfen von Identifikationsnummern ''' </summary> ''' <param name="Number">Identifikationsnummer, die geprüft werden soll</param> ''' <returns>True, wenn es sich um eine gültige Nummer handelt, andernfalls False</returns> Public Function CheckLuhn(ByVal Number As String) As Boolean Dim Result As Boolean = False ' Leerzeichen entfernen Number = Number.Replace(" ", "") If Number.Length > 0 Then Dim Digits As Integer = Number.Length Dim parity As Integer = Digits Mod 2 Dim sum As Integer = 0 For i As Integer = 0 To Digits - 1 Dim digit As Integer = Val(Number.Substring(i, 1)) If i Mod 2 = parity Then digit *= 2 If digit > 9 Then digit -= 9 sum += digit Next Result = ((sum Mod 10) = 0) End If Return Result End Function |