填表时总要抄身份证号,但很少有人真正看懂它:18 位数字每一位都有明确含义——前 6 位是你第一次上户口的区县,接着 8 位是生日,第 17 位定性别,最后一位是由前面 17 位"算"出来的校验码,算出 10 就写成 X。本文逐段拆解,并给出校验位的完整计算方法。
18 位的四段结构
| 段位 | 名称 | 含义 | 示例(110101199003071233) |
|---|---|---|---|
| 第 1~6 位 | 地址码 | 首次申领户口的省/市/县行政区划代码 | 110101 = 北京市东城区 |
| 第 7~14 位 | 出生日期码 | 出生年(4位)月(2位)日(2位) | 19900307 |
| 第 15~17 位 | 顺序码 | 同一区县同日出生者的编号,第 17 位奇数为男、偶数为女 | 123 → 男 |
| 第 18 位 | 校验码 | 由前 17 位加权计算得出,用于发现录入错误 | 3 |
注意:地址码是首次登记户口的地方,户口迁走号码也不变,所以它不等于"老家",更不等于现居地。
校验位怎么算?完整算例
前 17 位分别乘以固定权重,求和后对 11 取余,按余数查表得出校验码:
权重: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
余数→校验码:0→1 1→0 2→X 3→9 4→8 5→7 6→6 7→5 8→4 9→3 10→2
以 11010119900307123 为例:1×7 + 1×9 + 0×10 + 1×5 + 0×8 + 1×4 + 1×2 + 9×1 + 9×6 + 0×3 + 0×7 + 3×9 + 0×10 + 7×5 + 1×8 + 2×4 + 3×2 = 174;174 ÷ 11 余 9,查表余 9 → 校验码 3。于是完整号码是 110101199003071233。抄错任何一位,重算的校验码就对不上——这是它能防录入错误的原理。
校验通过 = 真身份证吗?(重要)
不是。校验位算法是公开的,随手编一个生日、按规则补上校验位,就能造出"格式合法"的号码。校验只能确认格式是否正确(常用于表单防手误),核验证件真伪只能通过公安机关官方渠道。任何第三方网站声称"验证身份证真伪",都不可信。
关于 X 和 15 位老号码
- X = 罗马数字 10:校验码可能出现 0~10 共 11 种值,为了保证号码恒为 18 位,10 用 X 表示。带 X 完全正常,录入系统时注意别用小写 x 或漏输;
- 15 位一代证号码早已停用,只在老资料里偶见:出生年份只有两位(7~8 位),无校验位。升位规则是年份前补 19、末尾重算校验码。解析工具对 15 位号码一般只做格式识别并提示升级。
最后提醒一句数据安全常识:身份证号属于敏感个人信息,只应在必要场景向可信方提供;用在线工具解析时,选择像本站这样明示"本地计算不上传"的工具。想了解另一个"数字含义"类话题,可以看看 IP 归属地的原理与精度边界。