身份证号怎么校验?第 18 位与地区码
一、身份证第 18 位是怎么算出来的
前 17 位每一位乘一个固定权重,求和后对 11 取模,再查表得到校验字符:
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 权重 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 |
余数对应校验字符:1 0 X 9 8 7 6 5 4 3 2(余数 2 时是 X,代表罗马数字 10)。
以 11010519491231002 为例,加权求和取模后落在 X 的位置,所以完整号码是 11010519491231002X。校验位的作用只有一个:发现录入时的错位与笔误,它不保证号码真实存在。
二、一个号码能读出多少信息
11010519491231002X 解码后:
| 字段 | 值 |
|---|---|
| 地区码 | 110105 → 北京市 市辖区 |
| 出生日期 | 1949-12-31 |
| 顺序码 | 002,末位 2 为偶数 → 女 |
| 校验位 | X |
| 生肖 / 干支 | 牛 / 己丑 |
| 星座 | 摩羯座(12.22~1.19) |
三点实用信息:
- 顺序码末位奇数为男、偶数为女,这是身份证里性别的编码规则;
- 小写 x 也能识别:输入
11010519491231002x会自动转为大写并校验通过; - 改任意一位都会失败:把校验位 X 改成 1 会直接报「校验位错误」,位数不足 18 位则报无效。
三、15 位升 18 位:补的不是两位
老的 15 位身份证 110105491231002 升级后是 11010519491231002X:
- 年份
49补成1949(加的是「19」两位); - 末尾加上按算法算出的校验位。
所以 15 位 → 18 位是「补年份前缀 + 补校验位」,中间的地区码与顺序码原样保留。老号码在场合理应停止使用,但做数据清洗时经常要批量转换。
四、另外三类号码,校验强度完全不同
| 类型 | 校验方式 | 能判什么 | 判不了什么 |
|---|---|---|---|
| 统一社会信用代码 | 加权和取模 31(GB 32100-2015) | 结构是否合法、抄写有没有错 | 企业是否真实登记 |
| 手机号 | 号码段 → 运营商 | 运营商、号段是否有效 | 精确归属地(携号转网会变) |
| 银行卡号 | Luhn 校验 + BIN 段 | 位数、校验、卡组织 | 具体发卡行(BIN 每月变动) |
| 车牌 | 省份简称 + 发牌机关字母 | 省级归属与城市 | 个体车主信息 |
实测几个例子:
- 统一社会信用代码
91110000802100433B→ 校验通过,部门「工商(市场监管)」、机构类型「企业」、地区「北京市」;把末位改成C立刻报错并提示正确校验位应是 B; - 手机号
13800138000→ 中国移动;19912345678→ 中国电信;12345678901→ 无效(不是合法号段); - 银行卡
6222021234567894→ Luhn 通过、银联;4111111111111111→ Luhn 通过、Visa;随手编的号基本都过不了 Luhn; - 车牌
京A12345→ 北京市(直辖市字母不分城区);粤B1025→ 深圳;粤X12345→ 顺德;川G12345→ 成都(增补号段)。
五、两个必须记住的边界
1. 校验位正确 ≠ 号码真实。 伪造一个校验位正确的身份证号或信用代码,在数学上非常容易。工具只能告诉你「格式没抄错」,核实真伪必须走官方渠道(国家企业信用信息公示系统、公安部门核验接口)。
2. 号码里没有校验位也判不了。 手机号精确归属地需要 7 位号段库、银行卡发卡行需要 BIN 库,两者都按月变动且部分不对外公开。宁可明确说「查不到」,也不给一个可能过时的答案——错误归属地比没有答案更糟。
六、直接算
→ 号码校验计算器:身份证、信用代码、手机号、银行卡、车牌批量校验
→ 身份证信息查询:地区、生日、性别、生肖与星座解析
→ 车牌归属地查询:省份与发牌机关字母对照
本站文章为个人使用经验的原创整理,除已注明来源的引用外均为本人撰写。文中涉及的软件名称、商标、截图等归各自权利人所有,引用仅用于说明与交流。如认为本站内容侵犯了你的合法权益,请通过「关于本站」页面的联系方式告知,核实后将及时更正或删除。