首页 › 开发工具 › 身份证号校验与信息解析工具

身份证号校验与信息解析工具

按 GB 11643 的加权因子与模 11 校验算法验证 18 位身份证号是否合法,指出校验位应为何值,并解析出归属省份、出生日期与周岁、第 17 位顺序码判定的性别;15 位旧证可自动补位为 18 位,全程仅在本机内存处理不上传。

仅在浏览器内处理,不会发送到任何服务器

数据来源:GB 11643-1999《公民身份号码》与 ISO 7064 MOD 11-2 校验位规则

校验结论校验通过(合法号码结构)
归属省份北京(区划前缀 11)
出生日期1990-03-07
周岁36岁
性别男(第 17 位顺序码 1,奇数)
已出生天数13,368天
下次生日还有146天
完整号码110101 19900307 451 4

号码分段含义(GB 11643 六段式结构)

位置内容含义
第 1—2 位11省级代码:北京
第 3—4 位01地市代码(110101 为完整 6 位区划码,县级与街道变更不影响校验)
第 5—6 位01县(区、旗)代码
第 7—14 位19900307出生日期 YYYYMMDD,共 8 位
第 15—17 位451顺序码:同一地区同年同月同日出生者的编号,末位奇数为男、偶数为女
第 18 位4校验码:加权和 mod 11 查表得出,应为 4

校验码计算过程

步骤计算结果
① 加权求和前 17 位分别乘以权重 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 后相加206
② 取模加权和 ÷ 11 取余数8
③ 查表按表 1,0,X,9,8,7,6,5,4,3,2 取下标为 8 的字符4
④ 比对与号码第 18 位(4)比较一致
110101199003074514
校验码正确

隐私说明:本工具是纯前端脚本,号码只在当前浏览器内存中参与计算,不发送任何网络请求、不写入本地存储、也不进入构建产物。 15 位旧证可直接输入,工具会自动补位为 18 位。 校验只能判断号码结构与校验位是否自洽,不能证明号码真实存在或属于本人;姓名与号码一致性需走公安实名接口。

本页所有计算在浏览器内完成,输入内容不会被上传。

计算口径

前 6 位是县级及以上行政区划代码(前 2 位对应省份),第 7—14 位为出生日期 YYYYMMDD,第 15—17 位为顺序码(第 17 位奇数为男、偶数为女),第 18 位为校验码。校验码按 ISO 7064 MOD 11-2:前 17 位逐位乘以权重 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 求和后对 11 取余,用余数在字符表 1,0,X,9,8,7,6,5,4,3,2 中取值,因此末位为 X 表示数字 10。15 位旧号码转 18 位是在出生年份前加 "19" 并重算校验位。

使用说明

  • 录入表单时用它检查号码是否输错(校验位能识别绝大多数单字符错误与相邻换位)
  • 末位是 X 表示校验值为 10,输入时要用英文大写字母 X,不是乘号
  • 需要判断性别与年龄时直接看解析结果,周岁按今天是否已过生日计算

常见问题

校验通过就说明号码是真的吗?

不是。校验位只能证明号码符合编码规则,能发现输错一位、两位调换这类错误;按算法规则随便拼一个从未发放的号码同样能通过,实名核验必须依赖公安接口。

为什么有人号码里的省份和现在户口不一致?

身份证前 6 位是首次登记时的行政区划,号码终身不变。后来区划调整、撤县设区或迁户口的,号码仍是原编码,因此不能用前 6 位判断当前户籍地。

末位 X 是什么意思?

校验值范围是 0—10,用两位数字会破坏 18 位定长,所以 10 用罗马数字 X 表示。X 必须大写,部分系统对小写 x 校验不通过。