C#身份证号码验证是否正确
C#实现身份证号码验证实例代码:
protectedvoidPage_Load(objectsender,EventArgse) { stringstr="11010519491231002X"; boolresult=CheckCardId(str); if(result==true) { Response.Write("Yes!"); } else { Response.Write("No!"); } } ///<summary> ///验证身份证是否正确 ///</summary> ///<paramname="str"></param> ///<returns></returns> privatestaticboolCheckCardId(stringstr) { stringnumber17=str.Substring(0,17); stringnumber18=str.Substring(17); stringcheck="10X98765432"; int[]num={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; intsum=0; for(inti=0;i<number17.Length;i++) { sum+=Convert.ToInt32(number17[i].ToString())*num[i]; } sum%=11; if(number18.Equals(check[sum].ToString(),StringComparison.OrdinalIgnoreCase)) { returntrue; } else { returnfalse; } }
18位身份证号码最后一位校验码的计算方法公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
校验方法:
(1)十七位数字本体码加权求和公式S=Sum(Ai*Wi),i=0,...,16,先对前17位数字的权求和Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子Wi:7910584216379105842
(2)计算模Y=mod(S,11)
(3)通过模得到对应的校验码Y:012345678910校验码:10X98765432
以上就是关于C#实现身份证号码验证的方法,希望对大家的学习有所帮助。