身份证号码解析校验

按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)。

第四步,按下表把余数映射成校验位:

余数012345678910
校验位10X98765432

一个完整算例。设前 17 位为 11010119900307001:

位次1234567891011121314151617
数字11010119900307001
权重7910584216379105842
乘积79050429540027035002

加权和 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 位。

身份证上的地址码是现在的居住地吗?

不是。地址码表示首次申领时的户口所在地,与现在的居住地无关。此外行政区划调整会让老代码在新版代码表中查不到,这属于正常现象,不代表号码有问题。

输入的身份证号会被记录吗?

不会。校验和解析全部在您的浏览器本地完成,没有任何网络请求,号码也不会被保存。可以断网后刷新页面验证功能仍可用。即便如此,仍建议避免在公共电脑上输入身份证号。

本页由 价值007工具箱 整理编辑 | 最后更新:2026-10-03 | 内容依据公开的标准公式与规范整理,仅供参考