欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

C#身份证号码验证是否正确

时间:2021-10-05 08:31:49|栏目:.NET代码|点击:

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#实现身份证号码验证的方法,希望对大家的学习有所帮助。

上一篇:WPF实现平面三角形3D运动效果

栏    目:.NET代码

下一篇:C#判断某个软件是否已安装实现代码分享

本文标题:C#身份证号码验证是否正确

本文地址:http://www.codeinn.net/misctech/178774.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有