跳到主内容
UniKit

身份证验证

按 GB 11643-1999 校验中国居民身份证 18 位号码(加权模 11-2 校验码),解析出生日期、性别与行政区划,识别并升级 15 位旧号,另附 GB 32100-2015 统一社会信用代码校验。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

身份证号

校验在本地完成:18 位号按 GB 11643-1999 的加权模 11-2 算法核对校验码与出生日期,15 位旧号只能校验出生日期。

18 位新号或 15 位旧号,可带空格。

校验结果

输入身份证号后点击「校验身份证」。

统一社会信用代码

18 位,按 GB 32100-2015 校验第 18 位。

输入统一社会信用代码后点击「校验代码」。

这个工具能做什么

  • 用户注册、KYC 或表单提交时先本地校验一遍身份证号,把「少一位」「校验码写错」这类问题在提交前拦掉。
  • 从号码里直接读出信息:出生日期、性别、所属省级行政区与 6 位行政区划码,不用再手工拆字段。
  • 处理历史数据时把 15 位旧号升级成 18 位(补 19 前缀并算出校验码),统一入库格式。
  • 校验企业或机构的统一社会信用代码(GB 32100-2015),核对第 18 位校验字符并拆出登记管理部门、机构类别、行政区划码与主体标识码。

示例

输入

440306198012120038

输出

校验通过:18 位 · 出生日期 1980-12-12 · 男 · 广东 · 行政区划码 440306 · 顺序码 003 · 校验码 8(应为 8)
15 位旧号 440524880101001 升级为 18 位:440524198801010011
统一社会信用代码 91350100M000100Y43 校验通过(登记管理部门 工商/市场监管)

示例里的号码都是测试数据。18 位号按 GB 11643-1999 的加权模 11-2 算法核对校验码与出生日期;15 位旧号没有校验码,只能校验出生日期,工具会提示并给出升级结果。

常见问题

这个号码真实存在吗?校验通过能说明什么?

只能说明号码「形式上合法」:位数、字符集、出生日期真实存在、校验码对得上。是否真有这个人、号码是否已注销或注销后重新分配,只能由公安或权威接口确认,工具不联网也不查询任何数据库。

最后一位 X 是什么?大小写有影响吗?

X 代表校验码值为 10。计算方式是前 17 位按权重 [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] 加权求和后对 11 取余,再到 10X98765432 里取字符,所以余数 2 时得到 X。输入前会去掉空格并统一转成大写,小写 x 一样能通过。

15 位旧号为什么只有出生日期能校验?

因为 15 位格式本身就没有校验位,它只有 6 位地区码 + 6 位出生日期(YYMMDD,一律按 19xx 解释)+ 3 位顺序码。工具会提示这是旧号并给出升级后的 18 位号码,方便统一数据格式。

统一社会信用代码为什么不能用 I、O、S、V、Z?

GB 32100-2015 的字符集是 0123456789ABCDEFGHJKLMNPQRTUWXY 共 31 个字符,刻意去掉了容易与数字 1、0 混淆的 I、O,以及可能与校验算法混淆的 S、V、Z。含这些字母的输入会直接报「含有非法字符」。

为什么有些号码出生日期合法、校验码也对,却说校验未通过?

两种可能:出生日期本身不存在(比如 2 月 30 日,或 15 位号按 19xx 解释后落在未来),或校验码不匹配。工具会把出生日期校验和校验码校验分成两行分别显示,方便你判断到底是哪一项错了。

关键词:id card validatorchinese id checkgb 11643checksumunified social credit code身份证验证身份证校验身份证号码解析15 位身份证统一社会信用代码校验码

同类工具