程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#身份證號碼驗證能否准確

C#身份證號碼驗證能否准確

編輯:C#入門知識

C#身份證號碼驗證能否准確。本站提示廣大學習愛好者:(C#身份證號碼驗證能否准確)文章只能為提供參考,不一定能成為您想要的結果。以下是C#身份證號碼驗證能否准確正文


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#完成身份證號碼驗證的辦法,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved