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

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. Swift3.0语言教程删除字符与处理字符编码
  2. 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
  3. c/c++函数指针(Hook前奏1)
  4. MVP open day 2009 (二)
  5. 测试计算机操作基础知识,计算机病毒基础知识测试
  6. 5分钟入门Lindorm SearchIndex
  7. 轻量级数据sqlite的C++调用示例
  8. 做前端的你有没有觉得很吃力?
  9. VS Code远程连接矩池云GPU主机
  10. jvisualvm/Jconsole监控WAS(WebSphere)中间件
  11. jq过滤替换敏感词_如何用python简单过滤敏感信息
  12. 排序算法--归并排序
  13. jq.$post传递参数给php,通过URL参数post传递的实现方式 PHP/Javascript
  14. 【WP 8.1开发】如何把自定义字体塞进应用里
  15. 计算机收不到打印机,打印机接收不到任务,如何添加打印机
  16. 见缝插针的人_“见缝插针”的创意人生
  17. 最新XNA开发游戏“Particle Wars”--粒子之战!
  18. 一键调用API,聚合数据API服务助力企业应用创新
  19. 布线光纤方面的知识都在这了,千万别错过!
  20. 广州计算机专业分数线,广东人工智能专业分数线多少

热门文章

  1. pandas-综合实践
  2. navicat的使用以及学生信息表的操作
  3. DQN、DDQN、DPG、DDPG、Dueling QN
  4. Python习题解答:将学生的各科考试成绩保存为csv文件格式
  5. ​真的存在可以检测万物的模型吗?联汇科技提出了一种有趣的解决方案
  6. 华为ai音箱能虚拟服务器吗,华为AI音箱能做什么 华为AI音箱功能详解
  7. Elasticsearch 的 Shard 和 Segment
  8. DirectX创建Windows窗口
  9. 网络流量监控 v3.0 下载
  10. 【思维导图】--如何让自己动起来