身份證號(hào)碼編碼規(guī)則
身份證號(hào)隨著個(gè)人的落戶后會(huì)自動(dòng)生成,早期的身份證號(hào)碼是15位羡洁,也叫社會(huì)保障號(hào)玷过,1999年正式更名為公民身份證號(hào),即第二代身份證號(hào)筑煮,第二代身份證號(hào)是18位辛蚊,且終身不變。
公民身份號(hào)碼是特征組合碼真仲,由前十七位數(shù)字本體碼和最后一位數(shù)字校驗(yàn)碼組成袋马。排列順序從左至右依次為六位數(shù)字地址碼,八位數(shù)字出生日期碼秸应,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼虑凛。
地址碼: 表示編碼對(duì)象常住戶口所在縣(市、旗软啼、區(qū))的行政區(qū)劃代碼桑谍。對(duì)于新生兒,該地址碼為戶口登記地行政區(qū)劃代碼祸挪。需要沒說明的是锣披,隨著行政區(qū)劃的調(diào)整,同一個(gè)地方進(jìn)行戶口登記的可能存在地址碼不一致的情況贿条。行政區(qū)劃代碼按GB/T2260的規(guī)定執(zhí)行盈罐。
出生日期碼:表示編碼對(duì)象出生的年、月闪唆、日盅粪,年、月悄蕾、日代碼之間不用分隔符票顾,格式為YYYYMMDD,如19880328帆调。按GB/T 7408的規(guī)定執(zhí)行奠骄。原15位身份證號(hào)碼中出生日期碼還有對(duì)百歲老人特定的標(biāo)識(shí),其中999番刊、998含鳞、997、996分配給百歲老人芹务。
順序碼: 表示在同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi)蝉绷,對(duì)同年鸭廷、同月、同日出生的人編定的順序號(hào)熔吗,順序碼的奇數(shù)分配給男性辆床,偶數(shù)分配給女性。
校驗(yàn)碼: 根據(jù)本體碼桅狠,通過采用ISO 7064:1983,MOD 11-2校驗(yàn)碼系統(tǒng)計(jì)算出校驗(yàn)碼讼载。算法可參考下文。前面有提到數(shù)字校驗(yàn)碼中跌,我們知道校驗(yàn)碼也有X的咨堤,實(shí)質(zhì)上為羅馬字符X,相當(dāng)于10.
二漩符、15位與18位身份證號(hào)碼差異
出生日期碼:15位身份證號(hào)碼中出生日期碼為6位吱型,其中年份代碼僅有2位,如590328,代表1959年生陨仅。
校驗(yàn)碼:15位身份證號(hào)碼中無校驗(yàn)位津滞。
三、校驗(yàn)碼算法
將本體碼各位數(shù)字乘以對(duì)應(yīng)加權(quán)因子并求和灼伤,除以11得到余數(shù)触徐,根據(jù)余數(shù)通過校驗(yàn)碼對(duì)照表查得校驗(yàn)碼。
加權(quán)因子:
校驗(yàn)碼:
算法舉例:
本體碼為11010519491231002
第一步: 各位數(shù)與對(duì)應(yīng)加權(quán)因子乘積求和17+19+010+15+***=167
第二步:對(duì)求和進(jìn)行除11得余數(shù)167%11=2
第三步:根據(jù)余數(shù)2對(duì)照校驗(yàn)碼得X
因此完整身份證號(hào)為:11010519491231002X
四狐赡、編碼規(guī)則的應(yīng)用
如上所述撞鹉,身份證號(hào)碼是基于一定的規(guī)則的,從身份證號(hào)碼中可以挖掘以下信息:
1颖侄、身份證長(zhǎng)度驗(yàn)證:身份證長(zhǎng)度僅存在15位或18位兩種長(zhǎng)度
2鸟雏、身份證輸入正確性驗(yàn)證:如身份證號(hào)為18位,可根據(jù)本體碼與校驗(yàn)碼得關(guān)系驗(yàn)證身份證號(hào)碼輸入有誤览祖,需要指出的是孝鹊,驗(yàn)證通過并不代表身份證號(hào)碼的真實(shí)性。
3展蒂、獲得戶籍注冊(cè)地信息:大部分情況下又活,該地即為出身地或籍貫。對(duì)應(yīng)時(shí)需留意行政區(qū)劃代碼的更新迭代锰悼。
4柳骄、出生年月及其正確性
5、性別:順序碼中奇數(shù)為男性箕般,偶數(shù)位為女性
6耐薯、小心坑:因校驗(yàn)碼為X,實(shí)際上有大小寫輸入不同,請(qǐng)注意兼容或統(tǒng)一曲初。
原文轉(zhuǎn)自:https://zhuanlan.zhihu.com/p/21286417?refer=mrcolin
如有侵權(quán)体谒,聯(lián)系必刪