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