- +1
身份证尾号是X的人到底有多特殊?
原创 不带X的 四象工作室
这是一张目前通行的第二代居民身份证,有国徽的这面是正面,有个人信息的是反面,底部这串18位的编码是身份证号。
从左到右前6位数是地址码,参考行政区划代码,依次代表省级、市级、县级所在地区。
不过,由于行政区划代码曾多次修订,哪怕来自同一个地方,身份证上这6位也可能不一样。
随后8位数字是出生日期码,接下来的3位是该日期出生婴儿的顺序码,在000到999之间,偶数被分配给女性,奇数被分配给男性。
那么,最后一位代表什么?为什么有人是数字,有人是X呢?
文 | Roxie 视觉 | 昭昭昭 导演&特效 | Ys 实习生 | 好好
前17位数字说尽了身份证主人的出生地、年龄和性别,而最后的字母并不携带实质信息,它是额外添加的校验码。
当我们手动输入身份证号,除了多一位、少一位这种比较明显的失误,可能难以发现自己输错了。
而身份证最后一位的校验码可以快速检测出这些错误,系统往往会弹出提醒,让用户重新输入:
那么,校验码是怎么发现身份证格式错误的?
身份证最后一位校验码数值通过MOD运算得出,通过代入身份证前17位数字,计算出最后1位校验码,采用的算法是MOD 11-2。
具体公式长这样:
这是一个求余公式,a¡和W¡的乘积之和除以11,余数是1。
i代表身份证号从右到左的位置序号,a¡对应第i位置上的身份证数字,它们都为0到10之间的整数。现在以这个身份证号为例,计算一下a₁的数值。
公式中的W¡以2为基数,由另一个公式求余算出。根据公式,把所有a¡和W¡的数值相乘,再将乘积相加除以11,已知余数为1,由此可以计算出此处a₁的值是10。
也就是说,这个身份证号最后1位应该是10,但直接用数字10会让号码从18位变成19位,因此用罗马数字X来替代10。
身份证号最后一位1-X校验码都由此公式算出,如果你的身份证号出现X,说明根据前17位计算出的数值刚好为10。
X的存在解决了位数的问题,但有可能给身份证主人带来烦恼,比如一些网站将身份证号的后6位作为初始密码,却不支持输入字母。
既然10这么麻烦,为什么不干脆去掉它,把校验码的范围限定在0到9呢?这是因为MOD 11算法识别各类错误的概率都在90%以上,MOD 10算法则无法保证如此高的识别率。
不止身份证号里有校验码,日常许多编码都会用到,但计算校验码的方法各异。比如,法人和其他组织统一社会信用代码用的是MOD 31-3算法,需要除以31取余数,得到的校验码在0到30之间,大于等于10的数字用英文字母代替。
商品条码的校验码算法则不涉及余数,通过加减计算得出。
我们每天都要用到的二维码(QR Code),则用到了更为复杂的里德-所罗门编码,通过它生成的码,已经超越了普通校验码“发现错误”的层次,上升到能“纠正错误”的level。
纠错级别最高的一款,就算码上高达30%的信息无法识别,依然可以还原出完整信息。
身份证号末尾的数字和X是与主人没有关系的信息,但作为校验码中的一员,它仅有的一个字节隐藏着一连串的计算,在你输错时弹窗提醒,悄悄地刷一把公式的“存在感”。
你认识身份证号自带X的人吗?欢迎在评论区和我们交流。
原标题:《身份证尾号是X的人 到底有多特殊?》
本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。
- 报料热线: 021-962866
- 报料邮箱: news@thepaper.cn
互联网新闻信息服务许可证:31120170006
增值电信业务经营许可证:沪B2-2017116
© 2014-2024 上海东方报业有限公司