身份证号码解析校验
按GB 11643国标校验算法验证身份证号第18位校验位,并解析出省份、出生日期、性别和年龄。
使用说明
第1步:输入 18 位身份证号码(输错了也不怕,工具会指出校验位不匹配)。
第2步:点「解析校验」,得到校验结果、地区码、出生日期、年龄和性别。
第3步:结果还会列出校验位的完整计算过程(加权和、余数、应有校验位),方便核对是哪里输错了。
15 位旧号也能直接输入,工具会自动升级为 18 位并给出校验位。号码全程在浏览器本地计算,不上传、不保存。
18 位身份证号,每一段是什么
依据《公民身份号码》(GB 11643-1999),18 位号码由四部分组成:
| 位置 | 位数 | 含义 |
|---|---|---|
| 第 1 ~ 6 位 | 6 位 | 地址码:前 2 位省份,中间 2 位城市,后 2 位区县 |
| 第 7 ~ 14 位 | 8 位 | 出生日期码:YYYYMMDD 格式 |
| 第 15 ~ 17 位 | 3 位 | 顺序码:同一地址码、同一出生日期的人的流水号 |
| 第 18 位 | 1 位 | 校验码:由前 17 位按加权算法算出 |
性别看第 17 位,也就是顺序码的最后一位:奇数为男,偶数为女。这是性别判断的唯一依据。
地址码前 2 位是省份代码,全国固定:11 北京、12 天津、13 河北、14 山西、15 内蒙古、21 辽宁、22 吉林、23 黑龙江、31 上海、32 江苏、33 浙江、34 安徽、35 福建、36 江西、37 山东、41 河南、42 湖北、43 湖南、44 广东、45 广西、46 海南、50 重庆、51 四川、52 贵州、53 云南、54 西藏、61 陕西、62 甘肃、63 青海、64 宁夏、65 新疆。
地址码只表示首次登记户口时的所在地,不代表现在的居住地。而且行政区划会调整(撤县设区、区县合并等),老的地址码在新版代码表里可能已经查不到,这不是号码有问题,是代码表更新了。本工具只解析前 2 位省份,不解析市和区县,就是因为后 4 位需要实时更新的行政区划代码表。
第 18 位校验码是怎么算出来的
算法本身并不复杂,分四步:
第一步,把前 17 位分别乘以固定的权重:
权重依次为 7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2(第 1 位乘 7,第 2 位乘 9,依此类推)。
第二步,把 17 个乘积相加,得到加权和 S。
第三步,用 S 除以 11,取余数(余数只可能是 0 ~ 10)。
第四步,按下表把余数映射成校验位:
| 余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 校验位 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
一个完整算例。设前 17 位为 11010119900307001:
| 位次 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 数字 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 9 | 9 | 0 | 0 | 3 | 0 | 7 | 0 | 0 | 1 |
| 权重 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 |
| 乘积 | 7 | 9 | 0 | 5 | 0 | 4 | 2 | 9 | 54 | 0 | 0 | 27 | 0 | 35 | 0 | 0 | 2 |
加权和 S = 7+9+0+5+0+4+2+9+54+0+0+27+0+35+0+0+2 = 154。
154 ÷ 11 = 14,余数 0。查映射表,余数 0 对应校验位 1。
所以完整号码是 110101199003070011。
顺带回答一个高频疑问:为什么最后一位会出现 X?因为余数 2 对应的校验位是 10,而一位字符放不下「10」,就用罗马数字 X 代替。所以 X 不是英文字母,它代表数字 10。
校验通过,不等于号码是真的
这是最需要说清楚的一点,也是很多人的误解:
校验位只能发现「输错了」,不能证明「号码存在」。校验位本质是一个防错码,作用类似于银行卡号、快递单号末尾的那位数字——它保证号码在抄写、录入过程中没出错。任何人只要按同一套算法,都能给一个虚构的前 17 位配上一个正确的校验位,算出「校验通过」的号码。
所以这个算法的正确用途是:
| 能用它做什么 | 不能用它做什么 |
|---|---|
| 检查录入的号码有没有抄错、少输一位 | 验证号码是否真实注册、是否属于某人 |
| 批量数据清洗时筛掉明显无效的号码 | 作为身份核验、实名认证的依据 |
| 从前 17 位反推正确的校验位 | 查询某人的姓名、住址等个人信息 |
真正需要核验身份时,应使用官方渠道(如公安部提供的实名核验服务),而不是靠校验位。反过来也要注意:不要以为「校验通过」就说明对方提供的号码可信,这在判断交易对手、审核资料时是个真实的坑。
15 位旧号怎么变成 18 位
1999 年 10 月之前签发的身份证是 15 位,之后才统一为 18 位。两者的差别很清楚:
| 15 位旧号 | 18 位新号 | |
|---|---|---|
| 结构 | 6 位地址码 + 6 位出生日期(YYMMDD)+ 3 位顺序码 | 6 位地址码 + 8 位出生日期(YYYYMMDD)+ 3 位顺序码 + 1 位校验码 |
| 出生年份 | 只有后两位 | 完整四位 |
| 校验码 | 无 | 有 |
升级规则只有两步:第一步,在出生年份前补「19」;第二步,按上面的加权算法算出校验位补在末尾。
举例:15 位号码 110101900307001 → 补「19」得到 11010119900307001 → 用这个 17 位基底算出校验位 1 → 18 位号码为 110101199003070011。
补「19」是因为 15 位号码全部签发于 1999 年以前,出生年份必然在 19xx 年,这是这套规则的成立前提。本工具已内置该逻辑,直接输入 15 位号码即可。
关于隐私,说三句实话
1. 身份证号是敏感个人信息。它包含你的出生日期、性别和户籍地,配合姓名足以用于大量实名场景。不要随手发给不可信的人,也不要在不明网站上填写。
2. 这个工具不会上传你的号码。校验和解析全部由浏览器里的 JavaScript 完成,没有网络请求,页面也不会把输入保存到任何地方。你可以断网后刷新页面验证——功能照常可用。
3. 网上流传的「身份证号查姓名」「身份证号查手机号」都是骗局或违法行为。公民身份信息属于受法律保护的个人信息,非法获取、提供、买卖都可能构成侵犯公民个人信息罪。任何人以「付费查询」为由索要你的身份证号,都是冲着诈骗或盗用去的。
常见问题
校验位是什么?
身份证第 18 位,由前 17 位按国家标准(GB 11643-1999)的加权算法算出:前 17 位分别乘以固定权重 7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,求和后除以 11 取余数,再查映射表得到校验位。只要有一位数字输错,校验就会不通过。
校验通过就说明身份证是真的吗?
不代表。校验位只是防错码,任何人都能给虚构的号码算出正确的校验位。它只能发现「输错了」,不能证明号码真实存在或属于某人。真正的身份核验要走官方渠道。
最后一位是 X 是什么意思?
X 代表数字 10。前 17 位的加权和除以 11,余数为 2 时校验位应为 10,而一位字符放不下两位数字,就用罗马数字 X 表示。所以 X 是正常号码,不是错误,输入时可以不分大小写。
怎么从身份证号看出性别?
看第 17 位(倒数第二位),也就是顺序码的最后一位:奇数为男性,偶数为女性。这是性别判断的唯一依据,其他位与性别无关。
15 位号码还能用吗?
15 位号码是 1999 年 10 月前签发的旧号。现在办理业务一般要求 18 位,可以把 15 位升级为 18 位(出生年份前补「19」、末尾补校验位)。部分系统仍能识别 15 位旧号,但建议统一使用 18 位。
身份证上的地址码是现在的居住地吗?
不是。地址码表示首次申领时的户口所在地,与现在的居住地无关。此外行政区划调整会让老代码在新版代码表中查不到,这属于正常现象,不代表号码有问题。
输入的身份证号会被记录吗?
不会。校验和解析全部在您的浏览器本地完成,没有任何网络请求,号码也不会被保存。可以断网后刷新页面验证功能仍可用。即便如此,仍建议避免在公共电脑上输入身份证号。