背景
产品设计、开发、测试过程中,需要了解到的身份证知识点。
正反面辨别
国徽面为正面,人像面为反面(其他身份证件同理)。与“常识”正好相反。
依据:中华人民共和国临时居民身份证管理办法 中第四条明文规定。
大陆身份证国家标准
一代身份证(15位)国家标准:GB 11643-1989
二代身份证(18位)国家标准:GB 11643-1999
二代身份证号码共 18 位,由 17 位数字本体码和 1 位校验码组成。排列顺序从左至右依次为:6 位数字地址码,8 位数字出生日期码,3 位数字顺序码和1位校验码。
一代身份证(15位)与二代身份证(18位)的区别
- 一代身份证是 15 位,二代身份证是 18 位(出生年份由 2 位变为 4 位);
- 一代身份证无校验码,二代身份证有校验码。
地址码
地址码的数字编码规则
第一位数字表示地区,1 是华北,2 是东北,3 是华东,4 是中南,5 是西南,6 是西北,7 是台湾,8 是特别地区。
第二位数字表示户籍地所在的直辖市、省、自治区在该地区中的排位,比如在华北地区,1 代表北京市,2 代表天津市,3 代表河北省,4 代表山西省,5 代表内蒙古自治区。
第三、四位数字则表示户籍所在地的区、县、县级市、旗。
第五、六位数字在户籍所在地是省、自治区的身份证号码中表示所在地的地区或地区级市(省辖市)、盟,在户籍地是直辖市的身份证号码中表示所在地的归属,01 是城市,02 是农村。
身份证号码前6位表示编码对象常住户口所在县(市、镇、区)的行政区划代码。
- 华北:北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000
- 东北:辽宁省|210000,吉林省|220000,黑龙江省|230000
- 华东:上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000
- 中南:河南省|410000,湖北省|420000,湖南省|430000,广东省|440000,广西壮族自治区|450000,海南省|460000
- 西南:重庆市|500000,四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000
- 西北:陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000
- 台湾:台湾|710000(身份证编码至今(2021年)未使用,已经用于台湾居住证颁发的是 830000)
- 特别地区:香港特别行政区|810000,澳门特别行政区|820000,台湾省|830000(台湾行政区划代码为:710000)
注意:第 3 到 6 位会因为行政区代码的变更而有所变化,比如:山西省运城市闻喜县,1988 年行政区代码为:142729(然而在 1980 年时:142729 代表山西省运城市临猗县,172723 才是 闻喜县),2020 年则为 140823。
历年行政区划代码: 中华人民共和国民政部-行政区划代码
出生日期码
身份证号码 7 到 14 位表示出生年月日,采用YYYYMMDD
格式。
顺序码
身份证号码 15 到 17 位是顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编订的顺序号,顺序码的奇数分配给男性,偶数分配给女性,即第 17 位奇数表示男性,偶数表示女性。
校验码
身份证号码第 18 位是校验码。
校验码的计算方法(图解)
图片出处: https://bkimg.cdn.bcebos.com/pic/314e251f95cad1c84e3e06167e3e6709c93d517e
身份证有效期
- 未满 16 周岁的公民,申请的身份证有效期是5年;
- 16 周岁到 25 周岁的公民,申请的身份证有效期是10年;
- 26 周岁到 45 周岁的公民,申请的身份证有效期是20年;
- 46 周岁以上的公民,申请的身份证有效期是永久的。
港澳台身份证
香港身份证
香港身份证号码共 6 位,加上括号里面的数字共 7 位,前面有英文字母代码。 括号中的数字或字母A,是校验码,用于检验括号前面的号码的逻辑正确性。格式: A123456(0)。
澳门身份证
澳门身份证号码由 8 个拉丁数字组成,格式为:XNNNNNN(Y)。
第一位 X,可能是 1、5、7。绝大多数人以 1 字开首;以 5 字开首的身份证号码代表持有或曾经持有葡萄牙国民身份证或葡萄牙给外国人身份证之人士;以 7 字开首代表曾经取得蓝卡之人士,大多都是在 1970 年代至 1980 年代期间从中国大陆持合法证件到澳门的人士。
中间 6 位数字,是发证当局给出的顺序号。
最后一位Y,是查核用数字,是为方便电脑处理资料及检查号码输入的正确性而设。
台湾身份证
台湾身份证号码一共有 10 位,第 1 位是大写的英文字母,后 9 位是阿拉伯数字。比如:U193683453。
身份证工具类
推荐使用 Java 工具类库 hutool 中的IdcardUtil
方法。