原文:身份证最后一位校验码

源代码下载地址:http://www.zuidaima.com/share/1734424679222272.htm

18 位身份证最末位是校验码,是按一定的规则产生的,用于校验身份证真伪,按理这规则属于保密的,X 代表的是其中一个校验码,是 10。校验码从 0 到 X 共 11 个。  
校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:  
公式为:∑(Ai×Wi)(mod 11)  
i——表示号码字符从右至左包括校验码在内的位置序号;  
Ai——表示第 i 位置上的号码字符值;  
Wi——示第 i 位置上的加权因子(其值已定),
其数值依据公式 Wi=2^(i-1)(mod 11) 计算得出。
其各位对应的值依次为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2  
例如:某男性公民身份号码为 34052419800101001V(V为校验码),对前 17 位数字本体码首先按照上面公式加权求和计算: 
i:  18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2  1 
Ai: 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 V 
Wi: 7  9  10  5  8  4  2  1  6  3  7  9  10  5  8  4  2  1  
∑(Ai×Wi) =( 21 + 36 + 0 + 25 + 16 + 16 + 2 + 9 + 48 + 0 + 0 + 9 + 0 + 5 + 0 + 0 + 2 ) = 189  
∑(Ai×Wi)(mod 11) = 189 mod 11 = 2 
然后根据计算的结果,从下面的表中查出相应的校验码。其中 X 表示计算结果为 10。 
∑(Ai×Wi)(mod 11): 0 1 2 3 4 5 6 7 8 9 10  
校验码字符值 V:  1  0  X  9 8 7 6 5 4 3 2  
根据上表,查出计算结果为 2 的校验码为 X,
所以该人员的公民身份号码应该为 34052419800101001X。  
如果校验码不符合这个规则,则肯定是假号码。  
关于 18 位身份证号码尾数是“X”的一种解释:
因为按照上面的规则,校验码有 11 个,而不是 10 个,所以不能用 0-9 表示。所以如果尾号是 10,那么就得用 X 来代替,
因为如果用 10 做尾号,那么此人的身份证就变成了 19 位,而 19 位的号码违反了国家标准,并且我国的计算机应用系统也不
承认 19 位的身份证号码。Ⅹ 是罗马数字的 10,用 X 来代替 10,可以保证公民的身份证符合国家标准。

身份证最后一位校验码相关推荐

  1. Python计算身份证第18位(校验码)来判断身份证是否输入正确

    Python计算身份证第18位(校验码)来判断身份证是否输入正确 前言 身份证编码规则如下:根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由 ...

  2. 算法实现身份证最后一位校验码

    一直以为身份证最后几位是随机生成的,今日与人交谈,发现自己太天真了,现在让我们来研究一下身份证最后一位校验码 根据<中华人民共和国国家标准GB 11643-1999>中有关公民身份号码的规 ...

  3. JS验证身份证号地区码及最后一位校验码

    /* 参数为身份证号 返回正确校验码 */ function getjy(id) {     var arr = new Array();//分别取出身份证的前17位加入到这个数组     var a ...

  4. 【SQLServer】验证身份证号第18位校验码是否合法

    目录 1.业务场景 2.知识前提 3.实现方案 4.测试 5.参考链接 1.业务场景 参考国家标准GB 11643-1999,居民身份证号组成:6位数字地址码+8位数字出生日期码+3位数字顺序码+1位 ...

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

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

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

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

  7. JAVA代码实现身份证18位校验码合法性校验

    身份证第18位(校验码)的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 2.将这 ...

  8. 测试你的身份证号码最后一位,校验码的生成方式

    package com.inbuild;public class Shengfenzheng {/*** @param args*/public static void main(String[] a ...

  9. 身份证最后一位校验算法-(ISO 7064:1983.MOD 11-2)

    根据<中华人民共和国国家标准GB 11643-1999>中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码, ...

最新文章

  1. Android开发:Kotlin下配置DataBinding
  2. 使用Docker迁移与备份
  3. php插入成功数据不显示,PHP插入数据不成功,什么原因呢?
  4. LiveVideoStack线上交流分享 (九) —— B站的QUIC实践简介
  5. linux容器进程号,linux下docker启动容器,查看容器、进程、日志等命令
  6. 蓝桥杯2017年第八届C/C++省赛B组第二题-等差素数列
  7. 鲸鱼吞塑料袋解决之道:人类合作和可持续发展报告
  8. 005:魔兽世界之一:备战
  9. app 服务器维护通知,启用 App Store 服务器通知
  10. android Button 和 TabLayout 英文自动大写的问题
  11. MicroBlaze软核扩大内存的方法
  12. 一个软件工程师必须是一个好的雕刻师
  13. vue3.0为什么要用Proxy替代defineProperty
  14. html5的教程pdf,html5 教程pdf
  15. 压缩感知的常见稀疏基名称及离散傅里叶变换基
  16. 这7个稀奇古怪的小网站,让我摸了一天的鱼!太上瘾啦!
  17. 上采样、下采样区别及作用
  18. SCRM是一个怎样的项目?
  19. VMware FCoE
  20. 元数据驱动应用设计_设计驱动的应用内购买:创造可持续的获利能力

热门文章

  1. java 家庭电视类_Java-家中的电视机
  2. 煽情的儿子101=随笔
  3. 2014年计算机求职总结--准备篇 (顺便也带点自己在美国准备的总结吧)
  4. 期权量化策略:如何利用期权捕捉期现套利机会?
  5. 【有利可图网】PS教程:利用PS分分钟将照片变成中国风古画效果
  6. 4399: 魔法少女LJJ
  7. 0460-HDFS纠删码的机架感知
  8. Ubuntu 16.04安装Fcitx拼音输入法
  9. Windows装机必备设置,软件安装
  10. 2010年显卡行业大事