身份证号多少位?编码规则与校验码解析
一、身份证号码的位数
中华人民共和国居民身份证号码由18位字符组成,这是自1999年10月1日起实施的GB11643-1999国家标准规定的。在此之前,身份证号码为15位。
二、身份证号码的结构解析
1. 18位身份证号码的组成
18位身份证号码分为4个部分:
1. 地址码(第1-6位)
表示公民常住户口所在地的行政区划代码,精确到县(市、区)级。
*例如:110105表示北京市朝阳区*
2. 出生日期码(第7-14位)
表示公民的出生年月日,格式为YYYYMMDD。
*例如:19900815表示1990年8月15日出生*
3. 顺序码(第15-17位)
– 第15-16位:派出所代码
– 第17位:性别标识(奇数表示男性,偶数表示女性)
4. 校验码(第18位)
由前17位数字通过特定算法计算得出,用于验证身份证号码的正确性。
2. 15位身份证号码的组成(历史版本)
15位身份证号码由以下部分组成:
– 地址码(6位)
– 出生年份(2位)+月日(4位)
– 顺序码(3位)
注意:15位身份证号码缺少世纪标识和校验码。
三、校验码的计算方法
校验码的计算采用ISO 7064:1983.MOD 11-2标准,具体步骤如下:
1. 将前17位数字分别乘以不同的权重系数(从第一位到第十七位的系数分别为:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
2. 将乘积相加得到总和S
3. 计算S÷11的余数Y
4. 根据余数Y查表得到校验码:
| Y值 | 校验码 |
|—–|——-|
| 0 | 1 |
| 1 | 0 |
| 2 | X |
| 3 | 9 |
| 4 | 8 |
| 5 | 7 |
| 6 | 6 |
| 7 | 5 |
| 8 | 4 |
| 9 | 3 |
| 10 | 2 |
四、实际案例解析
案例1:18位身份证号码
身份证号:110105199008153072
1. 地址码:110105(北京市朝阳区)
2. 出生日期:1990年8月15日
3. 顺序码:307(其中17位”7″为奇数,表示男性)
4. 校验码计算:
– 前17位:1,1,0,1,0,5,1,9,9,0,0,8,1,5,3,0,7
– 计算加权和:1×7 + 1×9 + 0×10 + 1×5 + 0×8 + 5×4 + 1×2 + 9×1 + 9×6 + 0×3 + 0×7 + 8×9 + 1×10 + 5×5 + 3×8 + 0×4 + 7×2 = 235
– 235 ÷ 11 = 21余4 → 校验码为8
– 验证通过(第18位确实是2)
案例2:15位升级为18位
原15位:110105900815307
升级为18位:
1. 补全出生年份:19900815
2. 计算校验码(前17位:11010519900815307)
– 加权和:1×7 + 1×9 + 0×10 + 1×5 + 0×8 + 5×4 + 1×2 + 9×1 + 9×6 + 9×3 + 0×7 + 0×9 + 8×10 + 1×5 + 5×8 + 3×4 + 0×2 = 215
– 215 ÷ 11 = 19余6 → 校验码为6
3. 升级后的18位:110105199008153076
五、注意事项
1. 校验码为”X”时:当余数为2时,校验码为罗马数字X(代表10)
2. 行政区划代码变更:部分地区的行政区划代码可能调整,但已发放的身份证号码不变
3. 港澳台居民居住证:采用18位号码,但编码规则与大陆居民身份证有所不同
通过了解身份证号码的编码规则,不仅可以验证身份证号码的真实性,还能从中获取有用的个人信息。在日常使用中,请注意保护个人身份证信息,防止泄露。