概述
本工具是一款生成第二代身份证号码的便捷工具,可以根据出生地、出生日期和性别,来生成一个“合法”的身份证号码。这里的合法,是指符合国家 GB 11643-1999 标准的身份证号码,但并非真实的身份证号码。
第二代公民身份证一共 18 位,根据《中华人民共和国国家标准 GB 11643-1999》中关于公民身份号码的规定:公民身份号码是特征组合码,由 17 位数字本体码和 1 位校验码组成。从左至右依次为:
- 6 位地址码:表示所在省(直辖市、自治区)、市、县的代码
- 8 位出生日期码:表示公民的出生年(4 位)、月(2 位)、日(2 位)
- 3 位数字顺序码:表示同一出生地的顺序码,其中,奇数表示男性,偶数表示女性
- 1 位数字校验码:根据前面 17 位数字生成的校验码(按照 ISO 7064:1983.MOD 11-2 计算得来)
下图清楚地展示了第二代身份证号码的编码规则:
工具使用说明
本工具提供了出生地、出生日期和性别 3 个选项来生成一个身份证号码。
1、出生地
通过一个省市区选择器,可以很方便地选择一个行政区域,该选项决定了身份证号码的「所在地」编码。如下图所示:
2、出生日期
通过一个日期选择器,可快速指定出生年、月、日。如下图所示:
3、性别
性别选项,将决定生成的身份证号码的「顺序码」。如果是男性,顺序码将是奇数;如果是女性,顺序码将是偶数。
指定了上述 3 个选项后,点击「生成身份证号码」,工具将生成一个符合第二代身份证编码规则的号码。下图展示了最终生成的身份证号码:
附:第二代身份证编码规则
下面将详细介绍第二代公民身份证的编码规则,按居民出生所在地(地址码)、出生日期、顺序码和校验码分别进行说明。
第 1-6 位:所在地
第 1 至 6 位为地址码,表示这个人常住户口所在县(市、区)的行政区划代码。
其中,前 2 位代表具体省(直辖市,自治区,特别行政区),代码如下:
- 11-15:京津冀晋蒙
- 21-23:辽吉黑
- 31-37:沪苏浙皖闽赣鲁
- 41-46:豫鄂湘粤桂琼
- 50-54:渝川贵云藏
- 61-65:陕甘青宁新
第 3、4 位是城市代码,第 5、6 位是区、县代码。身份证号码上的所在地就由这 6 位代码表示。
第 7-14 位:出生日期
第 7 至 14 位是出生日期码,表示该公民的出生年、月、日,一共 8 位。其中,年份是 4 位,月份和日期是 2 位(不足两位前面加 0)。如:19970430
,表示 1997 年 4 月 30 日出生。
第 15-17 位:顺序码
第 15 至 17 位是顺序码。顺序码是指在同一地区内,对同年、同月、同日出生的人编定的顺序号,一共 3 位数字。其中,奇数分配给男性,偶数分配给女性。
第 18 位:校验位
身份证号码的最后一位,是校验位。校验位基于前面 17 位数字,根据规定的计算规则而来。
校验码的计算方式如下:
- 对前 17 位数字,每位数字分别乘以一个对应的因数,然后再对这些乘积求和,得到一个值
A
。本步骤所用的因数是一个由 17 位数字组成的固定序列,分别是:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。也就是说,把前面得到的那 17 个数字,第 1 个数乘以 7;第 2 个数乘以 9;第 3 个数乘以 10 ...... 依次类推。例如,某身份证号码前 17 位是43050220040304292
,则根据算法要求,计算公式为:A = 4 * 7 + 3 * 9 + 0 * 10 + 5 * 5 + ... + 2 * 2
- 把第 1 步得到的和除以 11,然后获取其余数。例如,上面例子中的 17 位身份证号码和因数相乘之后,计算出来的和是 207 ,再计算
207 / 11
的余数,得到 9。 - 根据第 2 步得到的余数,对照下面的校验码表,得到对应的校验码(其中 X 代表罗马数字中的 10)。
余数 | 校验码 |
---|---|
0 | 1 |
1 | 0 |
2 | X |
3 | 9 |
4 | 8 |
5 | 7 |
6 | 6 |
7 | 5 |
8 | 4 |
9 | 3 |
10 | 2 |
根据上面这个对照表,我们知道当余数为 9 时,对应的校验码为 3,因此,该居民的公民身份号码应该为 430502200403042923
。你也可以使用本站提供的身份证信息查询工具来验证生成的身份证号码是否符合规范。
参考资料