开发注册表单要做身份证校验,录入数据想快速核对格式对不对——了解身份证号码的构成,这些事就变得有章可循。本文只讲结构与格式校验,不涉及也不鼓励查询他人信息。
18 位号码的四段结构
- 第 1~6 位:地址码,省、市、县三级行政区划代码。
- 第 7~14 位:出生日期,格式 yyyymmdd,一眼能核对出生年月。
- 第 15~17 位:顺序码,同一地区同天出生者的编号,第 17 位奇数为男、偶数为女。
- 第 18 位:校验位,可能是数字 0~9,也可能是罗马数字 X(代表 10)。
最后一位的 X 不是英文字母
校验位由前 17 位按国家标准(ISO 7064 MOD 11-2 算法)计算得出,用于发现录入错误——手滑抄错一位,校验位对不上,系统就能提示「号码不合法」。因为余数 10 需要占一位而号码只有 18 位,罗马数字 X(即 10)登场,它和英文字母 X 毫无关系,所以有人的证件尾号是 X。
实用的两个校验层次
- 格式层:18 位、出生日期合法、校验位正确——工具一秒完成,适合表单开发和录入抽检。
- 真实性层:格式正确不代表号码真实存在或属于本人,实名核验必须走官方渠道(如支付机构的实名接口)。
常见问题
15 位老号码还能用吗?
一代证早已停用,现行证件都是 18 位。老档案里的 15 位号码(出生年份只有两位、无校验位)可按规则升位,但以官方换证信息为准。
校验通过就一定是真号码吗?
不一定。校验位算法是公开的,格式合法只说明「可能是真的」。需要确认真实性时,必须使用官方或持牌机构的实名核验服务。