背景
產(chǎn)品設(shè)計(jì)、開發(fā)、測(cè)試過程中,需要了解到的身份證知識(shí)點(diǎn)。
正反面辨別
國(guó)徽面為正面,人像面為反面(其他身份證件同理)。與“常識(shí)”正好相反。
依據(jù):中華人民共和國(guó)臨時(shí)居民身份證管理辦法 中第四條明文規(guī)定。
大陸身份證國(guó)家標(biāo)準(zhǔn)
一代身份證(15位)國(guó)家標(biāo)準(zhǔn):GB 11643-1989
二代身份證(18位)國(guó)家標(biāo)準(zhǔn):GB 11643-1999
二代身份證號(hào)碼共 18 位,由 17 位數(shù)字本體碼和 1 位校驗(yàn)碼組成。排列順序從左至右依次為:6 位數(shù)字地址碼,8 位數(shù)字出生日期碼,3 位數(shù)字順序碼和1位校驗(yàn)碼。
一代身份證(15位)與二代身份證(18位)的區(qū)別
- 一代身份證是 15 位,二代身份證是 18 位(出生年份由 2 位變?yōu)?4 位);
- 一代身份證無校驗(yàn)碼,二代身份證有校驗(yàn)碼。
地址碼
地址碼的數(shù)字編碼規(guī)則
第一位數(shù)字表示地區(qū),1 是華北,2 是東北,3 是華東,4 是中南,5 是西南,6 是西北,7 是臺(tái)灣,8 是特別地區(qū)。
第二位數(shù)字表示戶籍地所在的直轄市、省、自治區(qū)在該地區(qū)中的排位,比如在華北地區(qū),1 代表北京市,2 代表天津市,3 代表河北省,4 代表山西省,5 代表內(nèi)蒙古自治區(qū)。
第三、四位數(shù)字則表示戶籍所在地的區(qū)、縣、縣級(jí)市、旗。
第五、六位數(shù)字在戶籍所在地是省、自治區(qū)的身份證號(hào)碼中表示所在地的地區(qū)或地區(qū)級(jí)市(省轄市)、盟,在戶籍地是直轄市的身份證號(hào)碼中表示所在地的歸屬,01 是城市,02 是農(nóng)村。
身份證號(hào)碼前6位表示編碼對(duì)象常住戶口所在縣(市、鎮(zhèn)、區(qū))的行政區(qū)劃代碼。
- 華北:北京市|110000,天津市|120000,河北省|130000,山西省|140000,內(nèi)蒙古自治區(qū)|150000
- 東北:遼寧省|210000,吉林省|220000,黑龍江省|230000
- 華東:上海市|310000,江蘇省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山東省|370000
- 中南:河南省|410000,湖北省|420000,湖南省|430000,廣東省|440000,廣西壯族自治區(qū)|450000,海南省|460000
- 西南:重慶市|500000,四川省|510000,貴州省|520000,云南省|530000,西藏自治區(qū)|540000
- 西北:陜西省|610000,甘肅省|620000,青海省|630000,寧夏回族自治區(qū)|640000,新疆維吾爾自治區(qū)|650000
- 臺(tái)灣:臺(tái)灣|710000(身份證編碼至今(2021年)未使用,已經(jīng)用于臺(tái)灣居住證頒發(fā)的是 830000)
- 特別地區(qū):香港特別行政區(qū)|810000,澳門特別行政區(qū)|820000,臺(tái)灣省|830000(臺(tái)灣行政區(qū)劃代碼為:710000)
注意:第 3 到 6 位會(huì)因?yàn)樾姓^(qū)代碼的變更而有所變化,比如:山西省運(yùn)城市聞喜縣,1988 年行政區(qū)代碼為:142729(然而在 1980 年時(shí):142729 代表山西省運(yùn)城市臨猗縣,172723 才是 聞喜縣),2020 年則為 140823。
歷年行政區(qū)劃代碼: 中華人民共和國(guó)民政部-行政區(qū)劃代碼
出生日期碼
身份證號(hào)碼 7 到 14 位表示出生年月日,采用YYYYMMDD格式。
順序碼
身份證號(hào)碼 15 到 17 位是順序碼,表示在同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、同月、同日出生的人編訂的順序號(hào),順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性,即第 17 位奇數(shù)表示男性,偶數(shù)表示女性。
校驗(yàn)碼
身份證號(hào)碼第 18 位是校驗(yàn)碼。
校驗(yàn)碼的計(jì)算方法(圖解)

圖片出處: https://bkimg.cdn.bcebos.com/pic/314e251f95cad1c84e3e06167e3e6709c93d517e
身份證有效期
- 未滿 16 周歲的公民,申請(qǐng)的身份證有效期是5年;
- 16 周歲到 25 周歲的公民,申請(qǐng)的身份證有效期是10年;
- 26 周歲到 45 周歲的公民,申請(qǐng)的身份證有效期是20年;
- 46 周歲以上的公民,申請(qǐng)的身份證有效期是永久的。
港澳臺(tái)身份證
香港身份證
香港身份證號(hào)碼共 6 位,加上括號(hào)里面的數(shù)字共 7 位,前面有英文字母代碼。 括號(hào)中的數(shù)字或字母A,是校驗(yàn)碼,用于檢驗(yàn)括號(hào)前面的號(hào)碼的邏輯正確性。格式: A123456(0)。
澳門身份證
澳門身份證號(hào)碼由 8 個(gè)拉丁數(shù)字組成,格式為:XNNNNNN(Y)。
第一位 X,可能是 1、5、7。絕大多數(shù)人以 1 字開首;以 5 字開首的身份證號(hào)碼代表持有或曾經(jīng)持有葡萄牙國(guó)民身份證或葡萄牙給外國(guó)人身份證之人士;以 7 字開首代表曾經(jīng)取得藍(lán)卡之人士,大多都是在 1970 年代至 1980 年代期間從中國(guó)大陸持合法證件到澳門的人士。
中間 6 位數(shù)字,是發(fā)證當(dāng)局給出的順序號(hào)。
最后一位Y,是查核用數(shù)字,是為方便電腦處理資料及檢查號(hào)碼輸入的正確性而設(shè)。
臺(tái)灣身份證
臺(tái)灣身份證號(hào)碼一共有 10 位,第 1 位是大寫的英文字母,后 9 位是阿拉伯?dāng)?shù)字。比如:U193683453。
身份證工具類
推薦使用 Java 工具類庫(kù) hutool 中的IdcardUtil方法。
常用驗(yàn)證方法:Java 常用驗(yàn)證方法(commons-validator,hutool)