【杂谈】藏在身份证号中的秘密
从小,我就对这一串身份证号码特别好奇。
我发现,我身边的小可爱们和我拥有着相同的前六位身份证号码
并且第七位开始的八位和我生日是一样的
唯独最后四位我一直猜不出其中的含义(但是也从来没想过搜索一下)
根据Wikipedia介绍,中华人民共和国国家标准GB 11643-1999《公民身份号码》中规定:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。[^l1]
18位数字组合的方式是:
1 | 1 | 0 | 1 | 0 | 2 | Y | Y | Y | Y | M | M | D | D | 8 | 8 | 8 | X |
地址码 | 出生日期码 | 顺序码 | 校验码 |
其实话说回来,我还记得早些年我的户口本上写的身份证号是15位的,也就是说是没有出生日期的年份前两位和最后的校验位的(似乎又一次暴露年龄了hhh)
先来说一说校验位,身份证号一共18位,分别为,其中就是校验位
那么校验位是怎样计算出来的呢?
从结论来说,和数字11
有很强大的关系,最后一位是根据前17位的数字以及数字11计算出来的。
具体方式如下:
首先,根据公式“”计算出来权重系数
,即前17位身份证号分别乘以的系数,结果如下表
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wi | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 |
然后根据这个表,使用公式,将前17位号码和对应权重系数乘积结果求和。
在根据公式
稍微解释一下这个公式,余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2,因此可以通过这个公式进行计算。[^l2]
你可能会说,明明就用17位,你把第18位权重计算出来有什么用
其实,这个规则不仅仅可以用于生成,而应用较多的是可以根据这个规则,去检验一个身份证号码的合法性(这里指是否符合构成规则)
对于前六位,这里提供一个对应的json文件(以js方式进行呈现)传送门
并且为了更好地演示这个规则,我将相应的规则写成一个HTML版本,方便小可爱进行实验: https://ridc.cha.moe/(已经上线啦)
网站https://ridc.cha.moe/所生成全部内容(包含但不限于身份证号和其对应姓名)仅为根据规则,通过随机数自动进行生成,并不具备任何真实性,请勿用于实名认证等需要填写身份证号码的地方,本网站及作者本人无法对使用者的行为进行限制,因此不会对产生的任何后果负责哦!
[^l1]: 中华人民共和国公民身份号码: https://zh.wikipedia.org/wiki/中华人民共和国公民身份号码
[^l2]: 身份证校验码: https://baike.baidu.com/item/身份证校验码
在服务器中住着的AKI娘会检测您的输入内容哦, 如果被判断为垃圾内容是看不到的呢!当然抹茶也会定期检查AKI娘的所作所为的!