C#實現身份證號碼驗證實例代碼:
protected void Page_Load(object sender, EventArgs e){ string str = "11010519491231002X"; bool result = CheckCardId(str); if (result == true) { Response.Write("Yes!"); } else { Response.Write("No!"); }} /// <summary>/// 驗證身份證是否正確 /// </summary> /// <param name="str"></param> /// <returns></returns> private static bool CheckCardId(string str){ string number17 = str.Substring(0, 17); string number18 = str.Substring(17); string check = "10X98765432"; int[] num = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; int sum = 0; for (int i = 0; i < number17.Length; i++) { sum += Convert.ToInt32(number17[i].ToString()) * num[i]; } sum %= 11; if (number18.Equals(check[sum].ToString(), StringComparison.OrdinalIgnoreCase)) { return true; } else { return false; }}18位身份證號碼最后一位校驗碼的計算方法公民身份號碼是特征組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。
校驗方法:
(1)十七位數字本體碼加權求和公式S = Sum(Ai * Wi), i = 0, ... , 16 ,先對前17位數字的權求和Ai:表示第i位置上的身份證號碼數字值Wi:表示第i位置上的加權因子Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)計算模Y = mod(S, 11)
(3)通過模得到對應的校驗碼Y: 0 1 2 3 4 5 6 7 8 9 10校驗碼: 1 0 X 9 8 7 6 5 4 3 2
以上就是關于C#實現身份證號碼驗證的方法,希望對大家的學習有所幫助。
|
新聞熱點
疑難解答