玩遊戲進行身份認證的時候,故意填錯身份證號的話,系統會知道是錯誤,為什麼?

步履不停Can


小編是一名程序員,曾經也做過身份證校驗的接口工作。遊戲公司不會知道您的身份證號的。您故意填錯身份證最後一位,肯定會校驗錯誤的。這個校驗沒有通過公安局等執法機構,因為身份證末尾數字是可以根據前面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;

所以,您主動填錯身份證號最後一位,不用知道您的正確的身份證號也是可以校驗出您填的身份證號是錯誤的。

<strong><strong>


些許拙見,供您參考。

從事互聯網開發多年,歡迎大家騷擾


凱騰凱


身份證第十八位稱為校驗位,可以根據前十七位算出。校驗位不正確的身份證過不了驗證

像題主所說改了生日但其他都沒動,那麼算出校驗值就變了,對應的第十八位也應該改變才行。(要不然就說你身份證不正確)

\r校驗位正確的身份證稱為合法身份證,但合法的身份證不一定都存在且有效。

\r看到很多人說什麼api啊 聯網啊 公安啊,都是驗證身份證和姓名是否一致才用的上。接口要花錢的而且信息返回並不及時,所以在防沉迷驗證時就算身份證不存在但校驗位正確一般是可以通過的(比如網易的遊戲)。

因為調用接口要花錢所以在大部分地方都不會驗證你的姓名和身份證是否一致,而是根據算法判斷身份證的合法性(合法的身份證不一定真實存在)。

在關鍵的地方會施行 聯網花錢驗證身份證號和姓名是否一致(比如買電話卡)但在大部分公司看來防沉迷並不關鍵除了財大氣粗的公司。


W65301464


現在是數據化互聯網時代,所有的信息和資料都是通過網絡傳遞來完成的,個人身份信息也一樣是可以通過網絡信查詢而完成的。

當然了,個人身份信息是受法律保護的,不是雖便就可以查詢到的,只有經公安機關審核通過的政府機構和單位才有權進入個人身份信息系統,而媒體只所以能識別,那是經過公安機關審核認可的,所以你改動的錯誤數據經過系統識別對比就知道數據出現錯誤,過程大該就是這樣。


與風互語


玩遊戲進行身份認證的時候,故意填錯身份證號的話,系統會報錯是為什麼?

首先可以明確,遊戲公司是肯定不會知道我們的身份證號的。

那麼報錯的緣由是什麼呢?

主要來自於兩個方面的判定方式:

一、身份證是否符合構成規則。

就和手機號、銀行號、甚至學生學號一樣,身份證號也有他的構成規則,而這些規則是公開的。

因此即便遊戲公司不知道我們的身份證號,但是他可以通過這些規則來校驗身份證號是否正確。

目前周知的身份證號的構成基本規則如下:

公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。其排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。

因此只要你隨便輸入的不符合上述基本規則,自然可以判定身份證號是錯誤的。

還是拿手機號舉個例子,我們都知道大陸手機的號碼都是1開頭的11位手機號,因此如果我們隨便輸入個數字“390982374509827897698643”,根據規則一看就知道不是手機號碼了。

二、身份證是否符合公安系統的驗證。

簡單說就是,遊戲公司不知道你的身份證號,警察叔叔知道啊。

現在公民身份信息是全國聯網的,自從遊戲防沉迷以來,遊戲的實名認證自然也是歸警察叔叔管的~~~

因此每一個在遊戲中做實名認證的身份證,即便構成上符合規則,還是會到公安系統的數據庫做個校驗的。

就好像遊戲公司向警察叔叔問了句“嗨,你們那裡有這個人的記錄嗎?”

然後警察叔叔進小黑屋翻了翻檔案記錄,然後出來告訴遊戲公司“查無此人”。

然後,你就看到報錯咯~~~~

所以小結一下,遊戲裡填身份證報錯,不是遊戲公司知道你的身份證信息,而是你填入的身份證號可能不符合構成規則,或者未通過公安系統的校驗而已。

(也就是說不要用身份證幹壞事喲,警察叔叔看著的~~~括弧笑~~~)


閒雲遊戲觀


無意中點進來了,答主這個回答算是最粘邊的了,其實評論更有趣,大家在爭論同一個解答卻使用了不同的語法,所以大家都沒看懂大家的意思。菸草來總結一下答案吧,其實很簡單,首先,遊戲服務器先通過算法校驗,看看身分證號有否算錯,因為不排除有不小心點到其它數字或者是小了(多了)一位數的情況,所以題主改動生日日期由於沒去計算校驗碼,系統直接就提示錯誤了,注意了,在這個時候,系統仍未聯網公安局api接口的,原因是成本,為校驗一個錯誤的號碼而付費了,那麼競爭對手還不找一百幾十個人不停的做錯誤註冊,一天下來你公司就倒閉了吧!然後,大遊戲公司確實需要對接公安局數據庫校驗身份真實性的,但絕大多數並不是實時校驗,大部份是晚上空閒時間再集中校驗的,所以很多APP的實名驗證並不是馬上通過,而是延後一兩天,也有部份是採取先通過,後面校驗有問題了再取消你的實名驗證


菸草有毒and八月


網遊公司用的都是算法。不是和公安聯網的具體到每個人的身份信息。打個比方,你只要用別人的正確身份證,輸入你自己的名字,照樣可以通過防沉迷檢測。但是萬一你被盜號想找回的時候就比較麻煩了


雕刻絲光


遊戲公司是不知道的,這只不過是程序員在做這個功能的時候,加上了身份證的校驗!

身份證中的數字的解讀

身份證號的前6位使用來判斷持證人的戶籍所屬地的,如圖:

所以,一般看一個人的身份證號的前6位,就知道這個人是哪個省份的。

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

第15-17位,這三位是順序碼!

這個碼是縣、區級政府所轄派出所的分配碼,每個派出所分配碼為10個連續的數。

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

第17位,如果是單數,那麼就是男性,反之,為女性。

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

第18位,也就是最後一位,是校驗位,由0-9的數字組成。

有的人會是x,別以為錯了,這其實是羅馬數字裡,10的意思!

第18位的作用是其實是為了校驗一個身份證號碼是不是正確的。

這裡面有具體的一套算法,不是說隨便改改就好了,所以,你改了最後一位,就會被檢測出來,你這是個假的身份證。

也不是說改其他的就可以的,一樣會被檢測出來,除非運氣好,碰上了。


「生活需要儀式感,從做一個互聯網上的瘦子開始!看完別忘了點個贊,點個關注哦!」

月半程序員見聞



像騰訊,網易這種應該是藉助一套防沉迷系統來實現的,像網易自己說的那樣,流程是提交身份證號碼和實名到公安系統進行驗證,很有可能公安部公開了驗證接口,因為好幾年前不是有個網絡遊戲防沉迷暫行辦法文件什麼的麼,具體也不太清楚。有些小平臺遊戲可能只是通過身份證驗證算法進行校驗的。


但無論如何一個公司是不可能掌握國民身份證數據的,這一點是可以肯定的。


小歪遊神


你好 我是巖松 一名遊戲領域創作人 很高興能回答你的問題

身份證最後一位是校驗碼,是通過身份證前面17位計算出來的,網站不一定會校對身份證與名字,可絕大部分都會校對最後一位,隨便填當然就知道你錯了計算方法:

1、將前面的身份證號碼17位數分別乘以不同的係數。從第一位到第十七位的係數分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。

2、將這17位數字和係數相乘的結果相加。

3、用加出來和除以11,看餘數是多少?

4、餘數只可能有0-1-2-3-4-5-6-7-8-9-10這11個數字。其分別對應的最後一位身份證的號碼為1-0-X -9-8-7-6-5-4-3-2。(即餘數0對應1,餘數1對應0,餘數2對應X...)

5、通過上面得知如果餘數是3,就會在身份證的第18位數字上出現的是9。如果對應的數字是2,身份證的最後一位號碼就是羅馬數字X。

例如:某男性的身份證號碼為【53010219200508011X】, 我們看看這個身份證是不是合法的身份證。

首先我們得出前17位的乘積和【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)】是189,然後用189除以11得出的結果是189÷11=17餘下2,187÷11=17,還剩下2不能被除盡,也就是說其餘數是2。最後通過對應規則就可以知道餘數2對應的檢驗碼是X。所以,可以判定這是一個正確的身份證號碼。


巖松懶得想名字


現在有和公安或身份證等聯網的驗證系統,遊戲公司不知道你填的信息發給驗證系統,驗證系統回覆就可以了。


分享到:


相關文章: