在线身份证号码生成功能上线,身份证号码规则介绍
所属分类:网站建设 | 发布于 2022-10-02 18:35:38
做系统测试的时候需要录入一些员工信息,录入员工信息就要输入员工的身份证号,本来以为随便输入一些18位的数字就行,结果系统提示身份证号校验不通过。
后来查了一下,原来身份证号码是有规则的,于是学习了一下,对着规则,自己写了个随机生成符合规则的身份证号码的页面,传送门直达:https://tool.wenge365.com/idCard.html。
身份证号规则
目前的身份证号码有15和18位两种,我们目前见到的身份证号码大多都是18位的,15位的是以前历史遗留的,新的身份证都是18位的。
以18位的身份证号码为例:
第一到第六位:地区编码,前两位是省份编码,中间两位是地级市编码,后面两位是区、县(市)编码。
第七到第十四位:出生年月日,前四位出生年份,中间两位出生月份,最后两位出生日期。
第十五到十七位:顺序码,按出生顺序编码,第十七位也标注了性别,其中偶数为男,奇数为女。
第十八位:第十八位是校验位。按照一点的规则生成,用来校验身份证是否符合规则。
校验位算法
第十八位为校验位,校验位通过以下三步得到:
- 第一到第十七的每一位分别乘以对应的系数(附录一),然后求和。
- 第一步的结果和11取余。
- 第二步的结果按照规则转行成对应的字符(附录二)。
举个例子
某人的身份证号是610626197507037163,我们来校验一下。
第一步:第一到第十七位分别乘以对应系数后求和,6*7+1*9+0*10+6*5+2*8+6*4+1*2+9*1+7*6+5*3+0*7+7*9+0*10+3*5+7*8+1*4+6*2,结果为339。
第二步:339和11取余,结果为9。
第三步:参考附录二,9对应的字符为3,所以第十八位为3,校验正确,这是一个符合规则的身份证号码。
附录
附录一:第一步每一位对应的系数分别是
位数 | 系数 | 位数 | 系数 |
1 | 7 | 2 | 9 |
3 | 10 | 4 | 5 |
5 | 8 | 6 | 4 |
7 | 2 | 8 | 1 |
9 | 6 | 10 | 3 |
11 | 7 | 12 | 9 |
13 | 10 | 14 | 5 |
15 | 8 | 16 | 4 |
17 | 2 |
附录二:第三步转换规则为
和11取余后的结果 | 对应第十八位的字符 |
0 | 1 |
1 | 0 |
2 | X |
3 | 9 |
4 | 8 |
5 | 7 |
6 | 6 |
7 | 5 |
8 | 4 |
9 | 3 |
10 | 2 |