身份证最后一位是X的人,会有多少麻烦?

“为啥我的身份证号码最后有个叉?我看大家的都是数字啊。是不是因为我特别厉害?X战警!”

家里的“神兽”忽然指着户口簿上自己身份证号的X,发出了一连串的疑问。看着孩子这么开心,我真不忍心告诉他这个X会带来多少小麻烦。

社交网站上,“X之人”诉说着X之痛丨微博

到网上随便搜一搜,就能发现有很多“X之人”对默认密码的抱怨。对于身份证尾号是数字的大部分朋友来说,“后六位”作为各种账号、证件的初始密码是一件习以为常的事。但对于身份证尾号是X的“天选之子”就没那么简单了。

不仅不同系统要求X的大小写不一样,有的甚至把“X之人”的初始密码设置成去除X后再向前顺推一位……这谁能一次性输入正确啊!

“X之人”:要不然你们这些系统“打一架”吧,谁赢了用谁的规则

既然这么麻烦,为啥身份证号码非得弄个字母X。这些人又是怎么被选中成为“X之人”?

掐指一算,你是X

末尾X的诞生,其实全靠前17位数的“支持”。

现在通行的身份证是第二代居民身份证,其中的18位身份证号码,也成了每个人都刻在脑子里的数字。身份证号末尾的X代表的也是数字,表示数字“10”。

第二代居民身份证的正面是国徽、证件名称、签发机关和证件有效期,背面是照片和登载的个人身份信息,其中最后一行公民身份号码,就是平时俗称的“身份证号码”。丨居民身份证式样,公安部行业标准《居民身份证总体技术要求》GA/T448-2021

公民身份号码共有18位数字:

6位地址码,按照《中华人民共和国行政区划代码》(GB/T2260)确定的,户口所在地县一级行政区划代码。由于行政区划代码在历史上经过多次修订,所以就算是同一个地区出生的人,前六位也不一定相同。

8位出生日期码,四位数年份+2位数月份+2位数日期。

3位顺序码,男性为奇数,女性为偶数。

最后再加一位校验码。

公民身份号码结构丨国家标准《公民身份号码》GB11643—1999

身份证号码充满了“随机性”——我们没法计划自己何时出生、出生在何地。不过最后的这位校验码,却成了“不确定中的确定”。只要前17位都定下来了,最后这一位数字也就确定了。它是通过一套算法,将前17位数字代入运算得出来的数字。

这样费劲算数的目的,是为了以后检查错误更方便。身份证号码在输入的时候可能出现各种错误,除了漏字、多字这种位数显而易见的错误外,输错数字都不容易被发现。校验码则可以“反推”出身份证号码是否录入正确,甚至可以识别出相邻两位填反、错位等错误。

当然,校验码只是为防止随机发生的错误,它不能检查出有意的伪造错误,也不能用来自动更正发现的错误。

现有的身份证输入系统大多会自动计算你填的号码对不对

咋还算出了数字10?

结尾出现X,都得“怪”这套校验算法。这套算法采用的方法是取模11,得出的计算结果范围是0到10。但身份证只有18位,结尾变成10就多了一位。这才把10的“重任”交给X来表示。

温馨提示:如果你晕公式,可以跳过这段……

身份证最后一位的算法采用的是ISO7064《数据处理——校验符系统》中给出的MOD11-2校验码系统。这里的MOD11-2表示模数是11,基数是2。也就是校验公式(见下)中,需要将总数除以11(模数)并取余数,而每个位置上的加权因子是通过以2(基数)为底的几何级数算出来的。

公民身份号码校验公式丨国家标准《公民身份号码》GB11643—1999

身份号码中的校验码位于最右边,所以它位置序号i=1,对应的加权因子W1也等于1。按照公式,我们需要将身份证号码中其他各个位置上的数字都乘以对应的因子,把它们加起来得到总数,再将总数除以11并取余数。如果这个余数加上校验码(乘1还是本身)以后,除以11的余数是1,那就说明这个号码能够满足公式的校验。

为了方便计算,国家标准中直接给出了校验码a1和余数的换算关系对应表:

举个例子:

校验码计算范例丨国家标准《公民身份号码》GB11643—1999

因为模数是11,所以最后的结果有0~10共10种可能性,为了保证校验码只占1个字符位置,当算出来的a1等于10时,在身份证上用罗马数字符X表示。

(耶,X终于出现了!)

简单点说,X的出现是因为模数取了11。设计校验算法,是希望让算法尽可能覆盖到常见的身份证号码录入错误。对于取模11的情况而言,ISO7064标准的附录A给出了该算法的有效性:能识别到所有的单替换、单换位和位移错误,对双替换错误的识别率也有90%。

不要X行不行?

相对而言,取模10虽然能避免X的出现,但它对相邻两位互换错误的识别率较低,也导致当存在2位或更多错误时,无法保证90%的识别率。

另外一种避免X出现的思路是,不使用会产生校验字符值为10的号码串。但因为身份证号码的前14位基本是固定生成的,除去校验码,只有最后三位数顺序码能调整。这样一来,同一地区同一天内可容纳的号码数量就少了许多。

挪威的身份证号码共11位数字,前六位是以DDMMYY(日-月-年)顺序排列的出生日期,接下来是3位随机码和2位校验码。第一位校验码负责校验1~9位数字,第二位校验码负责校验1~10位数字。他们要算两遍,而且权重还不一样。

挪威的校验码算法也是模11,为了避免出现X,他们弃用了所有会产生校验字符值为10的号码串。这导致他们损失了约17%的可用容量。

冰岛的身份证号码跟挪威有点像,校验码算法也是模11。为了避免出现X,他们也弃用了所有会产生校验字符值为10的号码串。只有2位随机码,导致冰岛每天大约只能同时出生80个人……考虑到冰岛的总人口仅约37万,按2020年1.5%的人口增长率来算,80个也还算充裕。

无处不在的校验码

除了身份证,有很多需要用到一串数字来表示的代号里都有校验码。

有些校验码不止会出现X。比如我国现行的法人和其他组织统一社会信用代码由18位阿拉伯数字或大写英文字母(不使用I、O、Z、S、V)组成。其中第17位是第9~16位的校验码(模11)。第18位是对前17位进行校验的校验码,虽然也使用ISO7064的校验码系统,但为了兼容可能存在的英文字母,所以选取了MOD31-3的算法系统。算出来的校验值可能的取值范围是从0~30,用A~Y的大写英文字母(不含I、O、Z、S、V)代表10~30之间的数字。

我们生活中常用的二维码其实也有校验功能。QR码的生成程序在将信息写入二维图案的时候,会使用名为BCH编码的纠错码生成算法,将冗余信息写入图案中。通过专门的解码算法,程序不但能校验出数据有没有错误,还能知道错误在哪,以便程序自动校正、恢复数据。容错等级最高的QR码支持在多达30%数据无法读取的情况下还能正确还原完整信息。

QR码的编码结构丨WikiCommons

在生活中,有很多数字和字母都在暗暗校验着某些标签正确与否。虽然有时候“X之人”会遇到些小麻烦,但校验码还是帮人们避免了不少难以察觉的错误。

对于不同的系统而言,设计代码时使用了不用的数据类型,导致有的可以读取X,有的却不能。从而出现了各不相同的规则来限制最后一位的输入。

总之,希望各个系统能早日统一最后一位的输入规则吧,“X之人”真的累了。

THE END
1.pta查验身份证c++实现输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。 输出格式: 按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。 https://blog.csdn.net/weixin_69158923/article/details/144385309
2.java校验中国护照号码mob64ca12e1881c的技术博客15. 16. 17. 18. 19. 20. 21. 在上面的代码中,我们定义了一个正则表达式PASSPORT_REGEX,用于匹配有效的护照号码。isValidPassportNumber方法接收一个字符串并返回验证结果。 测试和结果 我们定义了一组测试护照号码,结果将会输出每个护照号是否有效: https://blog.51cto.com/u_16213369/12795739
3.公民身份号码的第18位为,如果校验码为10,则用代替。1.日常生活中,人民警察基于履行职责的需要,依法有权查验居民身份证,我们必须配合,这是我们作为公民的法定 。 发布:2024/12/10 18:0:1组卷:10引用:4难度:0.8 解析 2.公民身份号码由( )位数字组成。 A.17 B.18 C.19 D.20 发布:2024/12/11 23:0:1组卷:6引用:10难度:0.5 解析 3. 是每个公民唯一的https://www.jyeoo.com/shiti/2b10868c-d15a-1575-bc5d-62e8fc254367
4.72385.cσm.7229查询精选16码,实地验证策略数据随着区块链技术的发展和数字货币市场的成熟,"72385.cσm.7229查询精选16码"有望进一步优化其功能,为用户提供更加精准和全面的交易策略数据。未来,工具可能会集成更多的数据源和算法,以适应市场的不断变化。 结论 "72385.cσm.7229查询精选16码"作为一项实地验证策略数据工具,在数字货币市场中扮演着越来越重要的角http://jczxy120.com/post/9048.html
5.android身份证号码验证在移动应用开发中,身份证号码验证是一个至关重要的环节,尤其是在涉及用户个人信息的场景下。Android平台上的身份证号码验证涉及到正则表达式的运用、逻辑判断的处理以及错误信息提示等方面。下面,我将深入http://share.office369.com/yingyong/102588.html
6.身份证查询身份证号码查询身份证号大全和真实姓名ip138身份证号码查询系统提供身份证号码查询,身份证查询系统,身份证号码和姓名,居民身份证号码大全,验证身份证真实性和照片对比。https://qq.ip138.com/idsearch/index.asp?userid=410621030805400&action=upto18
7.身份证最后一位的奥秘然而,很多人对身份证的构成并不十分了解,尤其是身份证号码的最后一位数字,它实际上具有重要的意义。本文将深入探讨身份证最后一位数字的含义、计算方法以及其在社会中的重要作用。一、身份证号码的构成 身份证号码由18位数字组成,前17位为数字,最后一位可以是数字0-9或字母X。整个身份证号码可以分为几个部分https://baijiahao.baidu.com/s?id=1818309790197184734&wfr=spider&for=pc
8.Excel函数教程我们知道,当今的身份证号码有15/18位之分。早期签发的身份证号码是15位的,现在签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。这两种身份证号码将在相当长的一段时期内共存。两种身份证号码的含义如下: (1)15位的身份证号码:1~6位为地区代码,7~8位为出生年份(2位),9~10位http://www.360doc.com/content/11/0305/21/1444297_98449311.shtml
9.重庆市2024年度考试录用公务员报考指南1.非普通高等学历教育的其他国民教育形式的毕业生是否可以报考? 按照有关法律规定,法官助理、检察官助理等职位需要全日制普通高等学历(学位)的人员才能报考。非普通高等学历教育的其他国民教育形式(自学考试、成人教育、网络教育、夜大、电大等)毕业生取得毕业证后,符合《公告》及招考职位要求的资格条件的,可以报考。 http://www.cq.gov.cn/zwgk/zfxxgkzl/fdzdgknr/zkly/zkgg/202401/t20240130_12954104.html
10.身份证号码吉凶算命查询身份证号码校验15位身份证号码转18位身份号码吉凶查询,自古有云:谋事在人,成事在天。究竟我们可否争取主动,反过来操控自己的命运呢?答案是肯定的。现在我们就可以用身份证号来测试你的性格、爱情、事业与未来,让你更能掌握未来,迈出成功的第一步。本系统绝不会记录算命者的信息,请放心使用!http://bmfsm.net/sfz/
11.身份证最后一位是X的人,受了多少苦?身份证里有X的人很特别,特别麻烦https://m.36kr.com/p/1933455211022721
12.原来身份证号码中包含着很多重要信息,而第十七位可以看出性别?第18位是校验码,主要目的就是为了验证身份证号码前面的17位数是否正确(也可以有效识别假身份证),它的取值范围是从0到10,但当得出的值是10的时候,总不能多出一位,于是就用罗马数字符的X来表示,这也是为什么有些人的身份证号码中有字母X的原因,所以请不要把你的身份证号码这样重要的信息,随便透露给别人。https://dy.163.com/v2/article/detail/EC5I7DP30515GP02.html
13.知道姓名如何查询身份证号码本篇将详细为大家解答“知道姓名如何查询身份证号码”这个问题。无法查到的。至少个人,或者无直属关系的组织,都无法查到。并且,比如我这假设使用公安的内部系统,现在也不是全国同步的,只有一些大城市的地方开始……https://mip.64365.com/zs/1301851.aspx
14.身份证上的“X”,究竟该怎么读?身份证上的公民身份号码 最后一位“Ⅹ”的误认、误读 曾引起社会的广泛议论 “Ⅹ”表示的是罗马数字“10” 读作shí最为妥当 不少网友表示: “涨知识了” 据江苏警方介绍 公民身份号码共有18位数字 6位地址码 按照《中华人民共和国行政区划代码》 https://m.gmw.cn/2023-12/25/content_1303611496.htm
15.身份证号码编码规则申明:本文除特别说明外,身份证号码专指18位公民身份号码 一、身份证号码结构 早期‘身份证号码’叫‘社会保障号’,为15位,1999年开始更名为公民身份证号码,即第二代身份证,为18位,且终身不变。 430512198908131367 公民身份号码是特征组合码,由前十七位数字本体码和最后一位数字校验码组成。排列顺序从左至右依次https://www.jianshu.com/p/07c7ee44579c