玩游戏进行身份认证的时候,故意填错身份证号的话,系统会知道是错误,为什么?

步履不停Can


玩游戏进行身份认证的时候,故意填错身份证号的话,系统会报错是为什么?

首先可以明确,游戏公司是肯定不会知道我们的身份证号的。

那么报错的缘由是什么呢?

主要来自于两个方面的判定方式:

一、身份证是否符合构成规则。

就和手机号、银行号、甚至学生学号一样,身份证号也有他的构成规则,而这些规则是公开的。

因此即便游戏公司不知道我们的身份证号,但是他可以通过这些规则来校验身份证号是否正确。

目前周知的身份证号的构成基本规则如下:

公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。其排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

因此只要你随便输入的不符合上述基本规则,自然可以判定身份证号是错误的。

还是拿手机号举个例子,我们都知道大陆手机的号码都是1开头的11位手机号,因此如果我们随便输入个数字“390982374509827897698643”,根据规则一看就知道不是手机号码了。

二、身份证是否符合公安系统的验证。

简单说就是,游戏公司不知道你的身份证号,警察叔叔知道啊。

现在公民身份信息是全国联网的,自从游戏防沉迷以来,游戏的实名认证自然也是归警察叔叔管的~~~

因此每一个在游戏中做实名认证的身份证,即便构成上符合规则,还是会到公安系统的数据库做个校验的。

就好像游戏公司向警察叔叔问了句“嗨,你们那里有这个人的记录吗?”

然后警察叔叔进小黑屋翻了翻档案记录,然后出来告诉游戏公司“查无此人”。

然后,你就看到报错咯~~~~

所以小结一下,游戏里填身份证报错,不是游戏公司知道你的身份证信息,而是你填入的身份证号可能不符合构成规则,或者未通过公安系统的校验而已。

(也就是说不要用身份证干坏事哟,警察叔叔看着的~~~括弧笑~~~)


闲云游戏观


小编是一名程序员,曾经也做过身份证校验的接口工作。游戏公司不会知道您的身份证号的。您故意填错身份证最后一位,肯定会校验错误的。这个校验没有通过公安局等执法机构,因为身份证末尾数字是可以根据前面17位数字计算而来的。

先说一下身份证号的基本构成。

第一位和第二位是您出生户口所在地的省级政府代码。

第三位和第四位代表您出生户口所在地的地、市级政府代码。

第五位和第六位是代表您出生户口所在地的县、区级政府代码。

而这些省、地、市、区、县的代码都是固定的,国家相关部门同意规定好的。从相关渠道可以获取到这些省、地、市的代码地址。

然后从第七位到第十四位就是您个人的出生年月。这个出生年月假如您不泄露,肯定只有您个人知道。

第十五位到第十七位代表您在出生地同年同月同日出生的一个顺序号。当然,身份证号的第十七位是比较特殊的,因为第十七位数字奇数代表您为男性,偶数代表您为女性。

至于第十八为数字就是一个校验码了。是由国家相关部门发布的的统一计算公式计算而来。

身份证号第十八位数字的计算方法是:

前面十七位数字分别乘以不同的系数,这个系数是:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。然后结果取和,除以11,得到余数。

根据余数去匹配对应的数字:1-0-X -9-8-7-6-5-4-3-2分别对于余数0到10;

所以,您主动填错身份证号最后一位,不用知道您的正确的身份证号也是可以校验出您填的身份证号是错误的。


些许拙见,供您参考。

从事互联网开发多年,欢迎大家骚扰


凯腾凯



身份证号的组成结构:

区域码(6位) 出生日期码(8位) 顺序码(2位) 性别码(1位) 校验码(1位)

共18位。

区域码 指的是公民常住户口所在县(市、镇、区)的行政划区代码,如110102是北京市-西城区。但港澳台地区居民的身份号码只精确到省级。出生日期码 表示公民出生的公历年(4位)、月(2位)、日(2位)。顺序码 表示在同一区域码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号。性别码 奇数表示男性,偶数表示女性。最后一位是校验码。

前面的没啥好说的,最主要的是最后这个校验码。

最后一位是校验码,这里采用的是ISO 7064:1983,MOD 11-2校验码系统。校验码为一位数,但如果最后采用校验码系统计算的校验码是“10”,碍于身份证号码为18位的规定,则以“X”代替校验码“10”。

可能这个解释你不能看懂,那么我下面手撸一遍计算过程。

校验码计算方式(小学生能看懂版本):

假设一个身份证前17位:33078119850907809

取身份证第1位计算17减0[身份证位数减1] 17-(1-1)=17计算2的17次方 2^17=131072计算131072除以11,取余数 131072➗11=11915……7 下面以 131072%11=7 表示用7乘以3[身份证号第1位数字] 7*3=21记录下21这个数字

取身份证第2位

计算17减1[身份证位数减1] 17-(2-1)=16计算2的16次方 2^16=65536计算65536除以11,取余数 65536%11=9用9乘以3[身份证号第2位数字] 9*3=27记录下27这个数字

取身份证第3位

………………

取身份证第17位

计算17减16[身份证位数减1] 17-(17-1)=1计算2的16次方 2^1=2计算2除以11,取余数 2%11=2用2乘以9[身份证号第17位数字] 2*9=18记录下18这个数字我们把这17个数字相加最后结果是423(不信可以自己手动算)计算最后结果423除以11 取余数 423%11=5计算12减5 12-5=7计算7除以11取余数 7%11=7

最后的计算结果只可能是1-10 这10个数字,因为身份证号只有18位 所以如果最后这个校验码是10那么就记为X

那么我们得到最后一位的校验码是7

如果你有时间,可以手动计算一遍自己的身份证校验码。

为了避免重复计算已经帮你把前面17步重复计算的前三步结果计算好了。

7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 校验码权重:1

也就是你每位身份证号乘以对应位数的数字就行。

后面的计算 拿计算器的话 大概一分钟之内能算完。

下面给出校验码计算的代码 --python3

下面给出自动生成身份证号的代码 --python3

输出结果


冠教兽


游戏公司是不知道的,这只不过是程序员在做这个功能的时候,加上了身份证的校验!


身份证中的数字的解读

身份证号的前6位使用来判断持证人的户籍所属地的,如图:

所以,一般看一个人的身份证号的前6位,就知道这个人是哪个省份的。

第7-14位是本人的出生日期,不用多说。

第15-17位,这三位是顺序码!

这个码是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续的数。

比如:010-019 或者 030-039。

第17位,如果是单数,那么就是男性,反之,为女性。

比如:001是男性,002是女性。

第18位,也就是最后一位,是校验位,由0-9的数字组成。


有的人会是x,别以为错了,这其实是罗马数字里,10的意思!

第18位的作用是其实是为了校验一个身份证号码是不是正确的。

这里面有具体的一套算法,不是说随便改改就好了,所以,你改了最后一位,就会被检测出来,你这是个假的身份证。

也不是说改其他的就可以的,一样会被检测出来,除非运气好,碰上了。

「生活需要仪式感,从做一个互联网上的瘦子开始!看完别忘了点个赞,点个关注哦!」

不想当程序员的胖子


身份证第十八位称为校验位,可以根据前十七位算出。校验位不正确的身份证过不了验证

像题主所说改了生日但其他都没动,那么算出校验值就变了,对应的第十八位也应该改变才行。(要不然就说你身份证不正确)

\r校验位正确的身份证称为合法身份证,但合法的身份证不一定都存在且有效。

\r看到很多人说什么api啊 联网啊 公安啊,都是验证身份证和姓名是否一致才用的上。接口要花钱的而且信息返回并不及时,所以在防沉迷验证时就算身份证不存在但校验位正确一般是可以通过的(比如网易的游戏)。

因为调用接口要花钱所以在大部分地方都不会验证你的姓名和身份证是否一致,而是根据算法判断身份证的合法性(合法的身份证不一定真实存在)。

在关键的地方会施行 联网花钱验证身份证号和姓名是否一致(比如买电话卡)但在大部分公司看来防沉迷并不关键除了财大气粗的公司。


W65301464


你故意输入错误是因为你的身份证信息,已经在大数据库中存在,为什么叫大数据时代,数据都是相互通的,比如公安局数据库,身份证信息,这些作为游戏公司都是必须验证的

现在游戏公司的一些防沉迷和一些防未成年系统,都是和公安部身份信息大数据链接,这也是一种必须监管的政策,怕过度沉迷于游戏,所以,因为每个地区都有段号和我们的手机号码其实是大同小异,一个道理,前三位开头是什么地方的然后你的生日,后四位会是什么意思,这都是有一定说法的,你估计输入错误,因为在你这个系统匹配身份里,无法识别你的信息。

也就是说或许你这个1125匹配的不死你这个地区的或者生日的,这就是数据时代

希望我的回答可以帮助你


游戏开心说


网游公司用的都是算法。不是和公安联网的具体到每个人的身份信息。打个比方,你只要用别人的正确身份证,输入你自己的名字,照样可以通过防沉迷检测。但是万一你被盗号想找回的时候就比较麻烦了


雕刻丝光



像腾讯,网易这种应该是借助一套防沉迷系统来实现的,像网易自己说的那样,流程是提交身份证号码和实名到公安系统进行验证,很有可能公安部公开了验证接口,因为好几年前不是有个网络游戏防沉迷暂行办法文件什么的么,具体也不太清楚。有些小平台游戏可能只是通过身份证验证算法进行校验的。


但无论如何一个公司是不可能掌握国民身份证数据的,这一点是可以肯定的。


小歪游神


无意中点进来了,答主这个回答算是最粘边的了,其实评论更有趣,大家在争论同一个解答却使用了不同的语法,所以大家都没看懂大家的意思。烟草来总结一下答案吧,其实很简单,首先,游戏服务器先通过算法校验,看看身分证号有否算错,因为不排除有不小心点到其它数字或者是小了(多了)一位数的情况,所以题主改动生日日期由于没去计算校验码,系统直接就提示错误了,注意了,在这个时候,系统仍未联网公安局api接口的,原因是成本,为校验一个错误的号码而付费了,那么竞争对手还不找一百几十个人不停的做错误注册,一天下来你公司就倒闭了吧!然后,大游戏公司确实需要对接公安局数据库校验身份真实性的,但绝大多数并不是实时校验,大部份是晚上空闲时间再集中校验的,所以很多APP的实名验证并不是马上通过,而是延后一两天,也有部份是采取先通过,后面校验有问题了再取消你的实名验证


烟草有毒and八月


现在是数据化互联网时代,所有的信息和资料都是通过网络传递来完成的,个人身份信息也一样是可以通过网络信查询而完成的。

当然了,个人身份信息是受法律保护的,不是虽便就可以查询到的,只有经公安机关审核通过的政府机构和单位才有权进入个人身份信息系统,而媒体只所以能识别,那是经过公安机关审核认可的,所以你改动的错误数据经过系统识别对比就知道数据出现错误,过程大该就是这样。