产品设计、开发、测试过程中,需要了解到的身份证知识点。
国徽面为正面,人像面为反面(其他身份证件同理)。与“常识”正好相反。
依据:中华人民共和国临时居民身份证管理办法(不让放超链接,自行搜索)
一代身份证(15位)国家标准:GB 11643-1989
二代身份证(18位)国家标准:GB 11643-1999
二代身份证号码共 18 位,由 17 位数字本体码和 1 位校验码组成。排列顺序从左至右依次为:6 位数字地址码,8 位数字出生日期码,3 位数字顺序码和1位校验码。
地址码的数字编码规则
第一位数字表示地区,1 是华北,2 是东北,3 是华东,4 是中南,5 是西南,6 是西北,7 是台湾,8 是特别地区。
第二位数字表示户籍地所在的直辖市、省、自治区在该地区中的排位,比如在华北地区,1 代表北京市,2 代表天津市,3 代表河北省,4 代表山西省,5 代表内蒙古自治区。
第三、四位数字则表示户籍所在地的区、县、县级市、旗。
第五、六位数字在户籍所在地是省、自治区的身份证号码中表示所在地的地区或地区级市(省辖市)、盟,在户籍地是直辖市的身份证号码中表示所在地的归属,01 是城市,02 是农村。
身份证号码前6位表示编码对象常住户口所在县(市、镇、区)的行政区划代码。
注意:第 3 到 6 位会因为行政区代码的变更而有所变化,比如:山西省运城市闻喜县,1988 年行政区代码为:142729(然而在 1980 年时:142729 代表山西省运城市临猗县,172723 才是 闻喜县),2020 年则为 140823。
历年行政区划代码:中华人民共和国民政部-行政区划代码(不让放超链接,自行搜索)
身份证号码 7 到 14 位表示出生年月日,采用YYYYMMDD格式。
身份证号码 15 到 17 位是顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编订的顺序号,顺序码的奇数分配给男性,偶数分配给女性,即第 17 位奇数表示男性,偶数表示女性。
身份证号码第 18 位是校验码。
校验码的计算方法(图解)
来自百度百科
香港身份证号码共 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方法。
常用验证方法:Java 常用验证方法