现在普遍使用的都是18位的身份证号码,由17位数字本体码和1位校验码组成。作为尾位的校验码,采用ISO7064:1983,MOD11-2校验码系统,是根据校验公式,由本体码决定的,用来验证录入或转录过程的准确性。
校验码是由前17位数按统一的公式计算出来的。如果根据前17位计算得到第18位校验码,再将计算得到的校验码与输入的身份证号码的第18位数进行比较就可以判断身份证号码是否存在错误。
校验公式要求:按照从右到左的顺序,右边第一位(即校验码)乘以7,第二位乘以9,第三位乘以10,以此类推,之后要求这18个乘积的和除以11求余,通过余值得到对应的校验码(0-1 1-0 2-X、3-9 4-8 5-7 6-6 7-5 8-4 9-3 10-2)。
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
【18位的身份证号码编排规则】
①地址码:(前6位)所在县(市、旗、区)的行政区划代码
全国县及县以上行政区划代码表http://www.stats.gov.cn/tjbz/xzqhdm/t20021125_46781.htm
②出生日期码:(第7位到第14位)
格式为八位数「20080808」,与旧身份证六位数「080808」不同。
③顺序码:(第15位到17位)县、区级政府所辖派出所的分配码
每个派出所分配码为10个连续号码,例如A派出所是「000-009」、B派出所是「060-069」。其中第17位奇数分给男性,偶数分给女性。
④校验码:(最后1位)
根据前面17位数字码按统一的公式计算出来的。
【第二代身份证的尾数(检验码)计算方法】
①输入身份证号码→设置为文本格式
数字超过了11位,系统会自动变成科学计数法的形式。
②数据→分列-固定宽度
将一个单元格中的数据分隔到多个单元格,每个数字占1个单元格。
③选择其中一个单元格Ctrl+Shift+*(星号)
选定活动单元格周围的当前数据区域
④复制Ctrl+C→选择性粘贴→转置→粘贴到A1:A17
把行变成了列
⑤「7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2」(②→④→粘贴到B1:B17)
前十七位数字本体码加权求和公式S=Sum(An*Bn),n=1,…,17
An:表示第n位置上的身份证号码数字值
Bn:表示第n位置上的加权因子
Bn:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
——⑥S=SUMPRODUCT(A1:A17,B1:B17)
=A1*7+A2*9+A3*10+A4*5+A5*8+A6*4+A7*2+A8*1+A9*6+A10*3+A11*7+A12*9+A13*10+A14*5+A15*8+A16*4+A17*2
⑦Y=Mod(S,11)
=Sum(An*Bn),n=1,…,17
=Mod(SUMPRODUCT(A1:A17,B1:B17),11)
⑧通过Y值找到对应的校验码Z
Z=(0-1 1-0 2-X 3-9 4-8 5-7 6-6 7-5 8-4 9-3 10-2)
———统一公式(⑥→⑧)
R=MOD((12-Mod(SUMPRODUCT(A1:A17,B1:B17),11)),11)
Z=IF(R=10,"X",R)
如果R=10,校验码Z为字母X;如果R≠10,校验码Z为数字R值。
【15位的身份证号码编排规则】
①1~6位为地区代码;
②7~12位为出生年月日;
③第13~15位为顺序号,并能够判断性别,奇数为男,偶数为女。
【15位的身份证号码转换为18位的身份证号码】
补充出生年份前两位数19、添加尾数检验码。
假设A列自A2起是身份证号(15位或18位)
①B列中身份证号全部改为18位,输入数组公式:
             =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2)
注意:数组公式输入后一定不要按回车,而是按Ctrl+Shift+Enter,Excel将在公式两边自动加上花括号{},自己键入花括号无效。
②C列中身份证号全部改为15位,输入公式:
=IF(LEN(A2)=15,A2,LEFT(REPLACE(A2,7,2,),15))

公民身份证号码的编排规则相关推荐

  1. 18位公民身份证号码的编排规则

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

  2. 身份证号码的编码规则及校验

    前言 本文内容适用于二代身份证,如无特殊说明,本文中所说的身份证皆指二代身份证. 笔者目前使用的jdk版本是1.6.0_29,Eclipse版本是Juno Release,Build id 20120 ...

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

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

  4. Js实现中国公民身份证号码有效性验证

    2019独角兽企业重金招聘Python工程师标准>>> 参考: Java实现中国公民身份证号码有效性验证 Php实现中国公民身份证号码有效性验证 本文将使用JavaScript实现中 ...

  5. 公安部下属的全国公民身份证号码查询服务中心笔试题

    上周参加了公安部下属的全国公民身份证号码查询服务中心的笔试,凭借记忆和在草稿纸的记录,现总结如下: 由于该中心还正在招聘,所以我把博客的相关内容删除了,如果有想要咨询的,加我的QQ771654817.

  6. 验证身份证号码是否符合规则

    [java]  view plain copy print ? package com.nebula; import java.text.SimpleDateFormat; import java.u ...

  7. 今天写了个自定义函数验证身份证号是否符合规则

    大家好,我是老王.今天调了半天,报了各种错误,终于写好了这个验证身份证号的自定义函数,规则可以参考身份证号码的编排规则 CREATE OR REPLACE FUNCTION LAOWANG_CHECK ...

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

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

  9. 身份证号码验证(转)

    文章出处: http://dengo.org/archives/941 不少大的游戏注册时都要输入身份证号码,来限制未成年人,配合所谓的反沉迷系统,账号注册环节注重的是快捷,所以身份证验证都不是真实的 ...

最新文章

  1. 初学laravel migrate常见错误解决
  2. jquery-懒加载技术(简称lazyload)
  3. sml完整形式_411的完整形式是什么?
  4. BGP——重分发注意点(总结+配置)
  5. rust蓝卡怎么开_Rust娘个人资料简介,角色作品介绍
  6. 学习SQL:使用日期和时间函数创建SQL Server报表
  7. zookeeper 虚拟机搭建好后 外部链接不上_Ubuntu Server搭建Hyperledger Fabric 2.1学习环境...
  8. Happy Mid-Autumn Festival !
  9. unity 字体width_Unity制作自定义字体的两种方法
  10. winrar压缩软件弹出广告解决办法
  11. Netty系列三、Netty实战篇
  12. Port-A-Thon
  13. LTE:FDD、TDD下行峰值速率计算
  14. js 获得较浅的颜色_了解较少的颜色功能
  15. 不管你信不信,这就是程序员996的真实内幕!
  16. html把图像放在指定位置,如何在HTML中将一个图像放在另一个图像的顶部?
  17. 走迷宫爆压,21行突破B站记录(自创,自设地图)
  18. mysql查询结果升序_MySQL ORDER BY:对查询结果进行排序
  19. java nio rewind_NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别
  20. Glide自定义缓存key

热门文章

  1. 如何利用基于PXI的下一代ATE系统测试平台进行军事/航天/卫星电子设备测试
  2. 使用Nginx负载均衡及动静分离
  3. Matlab -----求矩阵特征多项式和特征值
  4. 【转】2007最牛X网站收集,有些网站蛮有意思
  5. Java之字符类型char
  6. 记一次方案设计的前瞻性
  7. 图灵奖得主Geoffrey Hinton:我的五十年深度学习生涯与研究心法
  8. #USACO#Island Travels
  9. java毕设项目公立医院绩效考核系统(附源码)
  10. 在Delphi下使用迅雷APlayer组件进行免注册开发