公民身份号码  校验码 检证程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace org_bm_checker
{/// <summary>/// 公民身份号码  校验码 检证程序/// vp:hsg/// create date:2013-09-13 1:19/// </summary>public class sfzhClass{public void test(){string y_bm = "51302119781010543-4";//Console.WriteLine(y_bm);string bm = this.Getsfzh_checkbm(y_bm);Console.WriteLine(bm);Console.ReadLine();}public string Getsfzh_checkbm(string str_in){string rbc="";int[] wi=new int[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char c;int S=0, z=0;for (int i =0; i <17; i++){c = char.Parse(str_in.Substring(i, 1));if (c >= 'A' && c <= 'Z')  //A-Z字符{z = ((int)c - 55) * wi[i];}else if (c >= '0' && c <= '9')  //0-9字符{z = int.Parse(c.ToString()) * wi[i];}else{rbc = "Err不能输入其他字符错误码";return rbc;}S += z;}int Y=S %11;string g_c="";//校验码//根据模的值得到对应的校验码//对应关系为://Y值: 0 1 2 3 4 5 6 7 8 9 10//校验码: 1 0 X 9 8 7 6 5 4 3 2string xym="1,0,X,9,8,7,6,5,4,3,2";string[] CArray=xym.Split(new char[]{','});g_c=CArray[Y];  //获取校验码rbc=str_in.Substring(0,17)+"-"+g_c;return rbc;}}
}/* 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。
3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
校验的计算方式:1. 对前17位数字本体码加权求和
公式为:S = Sum(Ai * Wi), i = 0, ... , 16
其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 22. 以11对计算结果取模
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关于18位身份证号码尾数是“X”的解释居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,* 第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。* 作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,* 如果某人的尾号是0-9,都不会出现X,但如果尾号是10,* 那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,* 而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。* Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。* 但是我国的居民身份证在升位后,一些人的尾号变成了X,这部分人在工作生活中,* 例如去银行存取钱、去汽车公司租赁汽车或者报名参加考试等等过程中,* 往往不被检验者理解,认为是假身份证,这样的误会给很多人的生活带来不便。* 公安局的同志希望领到X身份证的同志正确理解这个数字的含义,* 查验身份证的机关和单位更应该清楚这一点。*/

公民身份号码 校验码 检证程序相关推荐

  1. 公民身份号码 校验码 检证程序

    公民身份号码  校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  2. 公民身份号码校验码算法(C#版)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. 【商业信息】GB 11643—1999 公民身份号码

    前      言 本标准是GB 11643-1989<社会保障号码>的修订版.为了使标准的内容适应我国国民经济和社会发展的需要,对原标准内容作了以下改动: 原标准名称"社会保障号 ...

  4. oracle验证公民身份号码

    首先看一下<公民身份号码>中做了明确的规定: 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11 ...

  5. 中国公民身份证号码校验

    中国公民身份证号码校验 上图可看出18位位身份证每一部分表示的意义. 图为随机生成身份号码,四川省 乐山市 井研县 1981年12月28日生 这里主要讲解最后一位校验码的验证 校验码主要是由前面17位 ...

  6. 公民身份号码是一种由18位数字组成的特征组合码,其排列顺序从左至右依次为:6位数字地址码、8位数字出生日期码,3位数字顺序码和1位数字校验码(校验码若为10则用字符X来表示)。编写程序从键盘输入一个

    #include <stdio.h> int main() {int add,year,month,day;/*定义地址码,年月日*/int shunxuma;/*定义顺序码*/char ...

  7. 18位身份证号码最后一位校验码的计算方法

    介绍18位身份证号码最后一位校验码的计算方法 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. ...

  8. Java身份证号码严格验证(第18位校验码算法实现)

    /*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,* 第18位为校验码.检验码分别是0-10共 ...

  9. 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法

    2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...

最新文章

  1. 功能之前,感叹号有什么作用?
  2. 为网站文字前面添加图标 在线调用 Font Awesome 字体icon小图标 美化网站
  3. 项目实践精解:C#核心技术应用开发
  4. android 页面标题,Android v4包下的PagerTitleStrip,ViewPager的页面标题
  5. 打docker镜像_使用docker构建自己的镜像
  6. python 时间函数小总结
  7. 托管式服务网格:多种类型计算服务统一管理的基础设施
  8. cad在哪里设置图幅大小_CAD教程之如何设置十字光标大小及颜色
  9. Bootstrap CSS 编码规范之注释
  10. 网友直呼太贵!华为nova 8系列发布:麒麟985+66W快充
  11. 主窗口刷新,子窗口闪烁
  12. 无标度网络 matlab,无标度网络及MATLAB建模
  13. Activiti7修改内部缓存为redis
  14. 用友NC V6.5 6.33 6.31 6.3 6.1 2019新个人所得税增强包税改升级补丁包
  15. exchange创建邮箱组_在 Exchange Server 中创建用户邮箱
  16. Aras Innovator: 自定义TOC目录,Form的基本过程
  17. Linux网络——DNS域名解析服务
  18. 在ios6中调用苹果地图用于导航 (地图开发)
  19. macOS安装MySQL,使用Navicat连接MySQL数据库/2022
  20. 贵有恒,何必三更起五更睡;最无益,只怕一日曝十日寒。

热门文章

  1. 联想服务器rd系列,联想ThinkServer RD550服务器首发评测
  2. 福利篇:Java精品学习编程视频免费领取
  3. 华科与东北大学计算机专业,东北地区“赫赫有名”的5所大学,个个实力雄厚,有你的母校没?...
  4. mac苹果系统使用技巧
  5. R-Studio如何恢复被格式化移动硬盘数据
  6. Vjudge B - Grandpa is Famous
  7. 攻防世界 Stegano
  8. 手机连接电脑方法,uni-app安卓真机调试教程,安卓手机调试
  9. VUE2安装初始化步骤(2022)
  10. PyTorch :transforms 数据增强:裁剪、翻转、旋转