C#身份證號碼驗證是否正確
C#實現(xiàn)身份證號碼驗證實例代碼:
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位身份證號碼最后一位校驗碼的計算方法公民身份號碼是特征組合碼,由十七位數(shù)字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗碼。
校驗方法:
(1)十七位數(shù)字本體碼加權(quán)求和公式S = Sum(Ai * Wi), i = 0, ... , 16 ,先對前17位數(shù)字的權(quán)求和Ai:表示第i位置上的身份證號碼數(shù)字值Wi:表示第i位置上的加權(quán)因子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īng)的校驗碼Y: 0 1 2 3 4 5 6 7 8 9 10校驗碼: 1 0 X 9 8 7 6 5 4 3 2
以上就是關(guān)于C#實現(xiàn)身份證號碼驗證的方法,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
c#求點(diǎn)到直線的投影點(diǎn)坐標(biāo)
這篇文章主要介紹了c#求直線外一點(diǎn)到該直線的投影點(diǎn),大家參考使用吧2013-12-12C#版的 Escape() 和 Unescape() 函數(shù)分享
從網(wǎng)上看到兩個方法, C# 版的 Escape() 和 Unescape(),收藏下。2011-05-05使用C# CefSharp Python采集某網(wǎng)站簡歷并且自動發(fā)送邀請短信的方法
這篇文章主要給大家介紹了關(guān)于如何使用C# CefSharp Python采集某網(wǎng)站簡歷并且自動發(fā)送邀請短信的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2019-03-03