身份号码编码规则
根据【中华人民共和国国家标准 GB 11643-1999】中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
由上述示例图可知,二代身份证号码是由 【6位地址码,8位出生日期码,3位顺序码,1位校验码】共18位组成。
地址码
表示编码对象常住户口所在县(市,旗,区)的行政代码,按 GB/T 2260的规定执行。
出生日期码
表示编码对象出生的年、月、日,按 GB/T 7408的规定执行。年、月、日代码之间不用分隔符。
顺序码
顺序码是同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性,即第17位奇数表示男性,偶数表示女性。
校验码
校验码采用 ISO 7064:1983, MOD 11-2 校验字符系统。
地区码规则
以前的公民身份号码地区码部分并不遵循国标《GB/T 2260》,所以地区码校验只能做简单的省级码(前两位)校验。
省级地址码:
华北:北京1
1,天津1
2,河北1
3,山西1
4,内蒙古15
东北: 辽宁2
1,吉林2
2,黑龙江23
华东: 上海3
1,江苏3
2,浙江3
3,安徽3
4,福建3
5,江西3
6,山东37
华中: 河南4
1,湖北4
2,湖南43
华南: 广东44,广西45,海南46
西南: 四川5
1,贵州5
2,云南5
3,西藏5
4,重庆50
西北: 陕西6
1,甘肃6
2,青海6
3,宁夏6
4,新疆65
特别:台湾71,香港81,澳门82
91开头是外国人取得中国身份号码的前两位编码,但上述说法并未得到证实。
出生日期码规则
出生日期码校验比较简单,只要符合日期的基本格式,月份限投影,天数限制及年龄区间规则即可。
其中年龄区间需要根据特定应用的实际自行设定阈值区间。
例子:
20081423 -- 月份错误
20080230 -- 日期错误
20280203 -- 年份错误