台灣身份證驗查碼算法

 

Sub key()
Dim name As String = TextBox1.Text
Dim sum As Integer = 0
Select Case Mid(name, 1, 1).ToUpper
Case "A"
sum = sum + 1
Case "B"
sum = sum + 10
Case "C"
sum = sum + 19
Case "D"
sum = sum + 28
Case "E"
sum = sum + 37
Case "F"
sum = sum + 46
Case "G"
sum = sum + 55
Case "H"
sum = sum + 64
Case "I"
sum = sum + 39
Case "J"
sum = sum + 73
Case "K"
sum = sum + 82
Case "L"
sum = sum + 2
Case "M"
sum = sum + 11
Case "N"
sum = sum + 20
Case "O"
sum = sum + 48
Case "P"
sum = sum + 29
Case "Q"
sum = sum + 38
Case "R"
sum = sum + 47
Case "S"
sum = sum + 56
Case "T"
sum = sum + 65
Case "U"
sum = sum + 74
Case "V"
sum = sum + 83
Case "W"
sum = sum + 21
Case "X"
sum = sum + 3
Case "Y"
sum = sum + 12
Case "Z"
sum = sum + 30
End Select
sum = sum + (Val(Mid(name, 2, 1)) * 8)
sum = sum + (Val(Mid(name, 3, 1)) * 7)
sum = sum + (Val(Mid(name, 4, 1)) * 6)
sum = sum + (Val(Mid(name, 5, 1)) * 5)
sum = sum + (Val(Mid(name, 6, 1)) * 4)
sum = sum + (Val(Mid(name, 7, 1)) * 3)
sum = sum + (Val(Mid(name, 8, 1)) * 2)
sum = sum + (Val(Mid(name, 9, 1)) * 1)
sum = sum + (Val(Mid(name, 10, 1)))
sum = sum Mod 10
If sum = 0 Then
name_key = True
Else
name_key = False
End If

End Sub

arrow
arrow
    全站熱搜

    毛魚 發表在 痞客邦 留言(0) 人氣()