中国居民身份证号码的编码规则遵循国家标准(GB 11643-1999),由18位字符组成,包含以下信息:
一、结构分解(18位)
地址码(前6位)
- 第1-2位:省、自治区或直辖市代码
- 第3-4位:地级市(区)代码
- 第5-6位:县(县级市、区)代码
出生日期码(第7-14位)
- 格式:YYYYMMDD
- 示例:19950415 → 1995年4月15日出生
顺序码(第15-17位)
- 第15-16位:同一地区同一天出生人员的顺序编号
- 第17位:性别标识
- 奇数(1、3、5、7、9):男性
- 偶数(0、2、4、6、8):女性
校验码(第18位)
- 由前17位通过特定算法计算得出,用于验证身份证真伪。
- 计算结果为0-10,其中10用罗马数字X表示(占位符)。
二、校验码计算方法
校验码通过 ISO 7064:1983, MOD 11-2 算法生成:
加权求和:将前17位数字分别乘以对应权重因子:
权重因子:[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
- 计算式:
$$ S = \sum_{i=1}^{17} (a_i \times w_i) $$
(a_i为第i位数字,w_i为权重)
取模运算:
$$ Y = S \mod 11 $$
映射校验码:
| Y 值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---------|----|----|----|----|----|----|----|----|----|----|-----|
| 校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
示例:若Y=2,则校验码为X。
三、示例解析
身份证号:11010519491231002X
地址码:110105 → 北京市朝阳区
出生日期:19491231 → 1949年12月31日
顺序码:002 → 性别码为2(偶数)→
女性
校验码:X(需通过算法验证)
四、注意事项
隐私保护:身份证号属于敏感个人信息,严禁非法收集或泄露。
15位旧版身份证:
- 1999年前签发,无出生年份前缀(如490231代表1949年2月31日)且无校验码。
校验码的意义:
- 防止输入错误或伪造,系统可通过校验算法快速验证号码合法性。
通过理解上述规则,可合法解析身份证中的公开信息(如地区、生日、性别),但实际应用需严格遵守《中华人民共和国个人信息保护法》。