申明:本文除特別說明外贷岸,身份證號碼專指18位公民身份號碼
一忘巧、身份證號碼結(jié)構(gòu)
早期‘身份證號碼’叫‘社會保障號’曲横,為15位玄捕,1999年開始更名為公民身份證號碼,即第二代身份證棚放,為18位枚粘,且終身不變。
430512198908131367
公民身份號碼是特征組合碼飘蚯,由前十七位數(shù)字本體碼和最后一位數(shù)字校驗碼組成馍迄。排列順序從左至右依次為六位數(shù)字地址碼,八位數(shù)字出生日期碼局骤,三位數(shù)字順序碼和一位數(shù)字校驗碼攀圈。
地址碼: 表示編碼對象常住戶口所在縣(市、旗峦甩、區(qū))的行政區(qū)劃代碼赘来。對于新生兒,該地址碼為戶口登記地行政區(qū)劃代碼凯傲。需要沒說明的是犬辰,隨著行政區(qū)劃的調(diào)整,同一個地方進行戶口登記的可能存在地址碼不一致的情況冰单。行政區(qū)劃代碼按GB/T2260的規(guī)定執(zhí)行幌缝。
出生日期碼:表示編碼對象出生的年、月诫欠、日涵卵,年、月荒叼、日代碼之間不用分隔符轿偎,格式為YYYYMMDD,如19880328被廓。按GB/T 7408的規(guī)定執(zhí)行贴硫。原15位身份證號碼中出生日期碼還有對百歲老人特定的標識,其中999、998英遭、997间护、996分配給百歲老人。
順序碼: 表示在同一地址碼所標識的區(qū)域范圍內(nèi)挖诸,對同年汁尺、同月、同日出生的人編定的順序號多律,順序碼的奇數(shù)分配給男性痴突,偶數(shù)分配給女性。
校驗碼: 根據(jù)本體碼狼荞,通過采用ISO 7064:1983,MOD 11-2校驗碼系統(tǒng)計算出校驗碼辽装。算法可參考下文。前面有提到數(shù)字校驗碼相味,我們知道校驗碼也有X的拾积,實質(zhì)上為羅馬字符X,相當于10.
二丰涉、15位與18位身份證號碼差異
出生日期碼:15位身份證號碼中出生日期碼為6位拓巧,其中年份代碼僅有2位,如590328,代表1959年生一死。
校驗碼:15位身份證號碼中無校驗位肛度。
三、校驗碼算法
將本體碼各位數(shù)字乘以對應加權(quán)因子并求和投慈,除以11得到余數(shù)承耿,根據(jù)余數(shù)通過校驗碼對照表查得校驗碼。
加權(quán)因子:
校驗碼:
算法舉例:
本體碼為11010519491231002
第一步: 各位數(shù)與對應加權(quán)因子乘積求和1*7+1*9+0*10+1*5+***=167
第二步:對求和進行除11得余數(shù)167%11=2
第三步:根據(jù)余數(shù)2對照校驗碼得X
因此完整身份證號為:11010519491231002X
四伪煤、編碼規(guī)則的應用
如上所述瘩绒,身份證號碼是基于一定的規(guī)則的,從身份證號碼中可以挖掘以下信息:
1带族、身份證長度驗證:身份證長度僅存在15位或18位兩種長度
2锁荔、身份證輸入正確性驗證:如身份證號為18位,可根據(jù)本體碼與校驗碼得關(guān)系驗證身份證號碼輸入有誤蝙砌,需要指出的是阳堕,驗證通過并不代表身份證號碼的真實性。
3择克、獲得戶籍注冊地信息:大部分情況下恬总,該地即為出身地或籍貫。對應時需留意行政區(qū)劃代碼的更新迭代肚邢。
4壹堰、出生年月及其正確性
5拭卿、性別:順序碼中奇數(shù)為男性,偶數(shù)位為女性
作者:MrColin
鏈接:https://zhuanlan.zhihu.com/p/21286417
來源:知乎