根据中华人民共和国国家标准 GB 11643-1999中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为: 六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。例如:370481表示山东枣庄滕州市;370421曾表示山东枣庄滕县;130703表示河北张家口桥西区;130721表示河北张家口宣化县;130705表示河北张家口宣化区。
生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。
从以上前17位数字能够读取到持证人的最初发证地址、生日信息、性别信息。一般情况下,身份证号码终身不变。
最后一位是校验位,由数字0-9和字母X组成。校验位的校验规则如下(以已故家父身份证号码为例):
位数序号n | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2(n-1) | 131072 | 65536 | 32768 | 16384 | 8192 | 4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
2(n-1)对11取余(加权数) | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 |
身份证号示例 | 3 | 7 | 0 | 4 | 2 | 1 | 1 | 9 | 5 | 9 | 0 | 2 | 2 | 4 | 7 | 4 | 1 | 7 |
号码含义 | 山东省 | 枣庄市 | 滕县 | 出生年月日 | 男 | |||||||||||||
号码×加权数 | 21 | 63 | 0 | 20 | 16 | 4 | 2 | 9 | 30 | 27 | 0 | 18 | 20 | 20 | 56 | 16 | 2 | 7 |
乘积求和 | 331 (331对11取余得1,号码校验正确) |
只要身份证号码各位上的数字与该位对应的加权数乘积的和对11取余,最后结果是1,就是一个正确的身份证号码。那么,如果知道前17位,求最后一位的方法也很简单:因为最后一位数字的加权数是1,因此只要先将前17位数字加权乘积的和对11取余,加上最后一位数字之后和是1或者12,最终取余结果就是1了。如果最后一位数字是10,则用X表示,避免位数超过18位。
对应关系如下:
前17位取余结果 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校验位 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
您也可以使用本站提供的小工具批量校验身份证号码是否正确: