居民身份证
我国的18位公民身份号码是特征组合是由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
第1、2位表示省级行政区。第1位数字是以前的大区制代码。第2位是大区所在省市编码。全国共分为8个大区:华北(1)、东北(2)、华东(3)、中南(4)、西南(5)、西北(6)、台湾(7)和港澳(8)。
第3、4位表示地级行政区。其中,01-20,51-70表示地级市(除儋州市);21-50表示地区、自治州、盟;90表示省直辖县级行政单位(含儋州市);直辖市身份证中01表示市辖区,02表示县。
第5、6位表示县级行政区。01-18表示市辖区或地区、自治州、盟辖县级市;21-80表示县、旗;81-99表示省直辖县级行政单位。
第7~14位表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:2023年10月1日就用表示。
第15~17位表示在同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。
第18位为根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2计算出来的检验码。如果某人的尾号为10,那么就得用X来代替,这是罗马数字十,正确读法是十,不读艾克斯或叉。
下面是检验码的算法,我以户籍在北京市朝阳区,生日为2023年10月1日的一位女孩为例,这个身份证号是我乱编的,因为人还没出生,如果今后有身份证号码相同的小姑娘请见谅。
位数 | 数值 | 乘数 | 乘积 |
1 | 1 | 7 | 7 |
2 | 1 | 9 | 9 |
3 | 0 | 10 | 0 |
4 | 1 | 5 | 5 |
5 | 0 | 8 | 0 |
6 | 5 | 4 | 20 |
7 | 2 | 2 | 4 |
8 | 0 | 1 | 0 |
9 | 2 | 6 | 12 |
10 | 3 | 3 | 9 |
11 | 1 | 7 | 7 |
12 | 0 | 9 | 0 |
13 | 0 | 10 | 0 |
14 | 1 | 5 | 5 |
15 | 0 | 8 | 0 |
16 | 0 | 4 | 0 |
17 | 2 | 2 | 4 |
求和 | 82 | ||
余数 | 11 | 5 |
可以看到身份证前17位数字,都有一个对应的乘数,将该数字和乘数相乘得到乘积,然后将17个乘积相加,得到一个和,再将和除以11,得出余数(余数是整数除法中未被除尽的部分,例如10÷3,不能除尽,余数为1)。因为除数为11,所以余数肯定0~10这11个数字中的一个。最后按照下表查出18位数字。
余数 | 18位值 |
0 | 1 |
1 | 0 |
2 | X |
3 | 9 |
4 | 8 |
5 | 7 |
6 | 6 |
7 | 5 |
8 | 4 |
9 | 3 |
10 | 2 |
小姑娘的余数为5,对应的18位检验码为7。小姑年的身份证号码为27。如果第18位不是7,这张身份证就是伪造的。