一次录入事故
客服手工录入身份证号,尾号 5 敲成 6,系统却照单全收——直到对账才发现。如果表单接了校验位验证,这类错误会在输入瞬间被拦下:基号 31010119900101001 按 ISO 7064 加权算法算出的校验位是 2,完整号码 310101199001010012,末位对不上就是录入错了。
校验位怎么算出来的
前 17 位分别乘加权因子 7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,本例加权和是 120,除以 11 余 10,按映射表(余数 10 对应 2)得到校验位。换个例子:44010619880615003 算出校验位是 5,顺序码 003 的末位 3 表示男性——顺序码奇偶定性别、末位定校验,18 位号码每一段都有职责。
校验通过不等于身份真实
- 校验位只防手滑,防不了伪造:伪造者也会按算法补正确校验位
- 出生日期字段形同虚设的情况要警惕:19900230 这种不存在的日期,规范工具会直接报错
- 末位 X 是校验码 10 的表示,必须大写,小写在不少系统校验失败
- 15 位老身份证没有校验位,1999 年前签发,升级需补 19 和校验码
常见问题
- 加权和为什么 mod 11?
- ISO 7064 标准规定模 11 的余数映射方案,11 种余数对应 10 个数字和 X,保证任意单字符改动都能被发现。
- 地址码变了会换号吗?
- 不会。身份证号终身唯一,行政区划调整不影响已发号码。
- 批量核对怎么高效?
- 用校验工具批量导入,先过滤校验位不合法的,再核对业务字段。
校验位挡得住手滑,挡不住伪造——它是录入质检,不是身份认证。