piapia123
zh

身份证号码校验与解析

查询

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

把一批号码粘进来,逐行告诉你能不能用、以及里面写了什么。 校验分三关,任何一关都可能是你要查的:行政区划码(前 2 位)必须是存在的省级代码;出生日期(第 7–14 位)必须是真实存在的日历日、且不在未来;校验位(第 18 位)要按 ISO 7064 MOD 11-2 算得对。失败时会说清是哪一关没过,而不是笼统地「号码无效」—— 一关一关地报,你才知道该改什么。 15 位旧号单独标注。 1999 年之前签发的身份证是 15 位,它没有校验位,只能按规则解析、无法判断真伪。所以本工具把它标成「可解析,但无校验位」而不是「有效」—— 把两者混为一谈,等于给一个看起来权威、其实没有依据的结论。 只给到省级,是因为市县码表会过期。 前 6 位本是完整的行政区划码,但市县两级有两千多条且每年都在变(撤县设区、新区挂牌)。省级码只有 34 条,几十年不变 —— 少给一个信息,好过给一个错的。 全程在本机计算,号码不会离开这个页面。身份信息是最不该经过第三方服务器的东西之一。

功能

  • 批量校验:一行一个号码,逐行给出结论,一个错的不会让整批停下来
  • 三关分别给原因:行政区划码、出生日期、校验位
  • 解析出生日期、性别、所属省份与年龄(周岁)
  • 出生日期会验真实存在:2 月 30 日、未来日期都会被指出
  • 支持 15 位旧号:能解析出生日与性别,并如实标注「无校验位,无法判断真伪」
  • 可只列出不通过的号码 —— 核对名单时用这一档,几百条里一眼看到问题
  • 全部通过时会明说「全部通过」,而不是给一张空表
  • 生日格式可选 ISO / 紧凑 / 点分三种
  • 每行可单独复制,也能整段复制
  • 全程在浏览器本地计算,号码不上传

使用方法

  1. 一行一个号码粘贴进输入框(18 位或 15 位都行)
  2. 选输出什么:全部解析、只提生日,还是只列不通过的
  3. 结果实时更新,点某一行的复制按钮取走一项
  4. 核对名单时用「只列出不通过的号码」,一眼看到问题在哪

常见问题

为什么 15 位号码不算「有效」?
因为 15 位号码没有校验位。18 位的最后一位是按前面 17 位算出来的,改任何一位都会对不上,所以它能验真伪;15 位(1999 年之前签发)没有这一位,任何数字组合都能「解析」出一组生日与性别,判断不了真假。把它标成「有效」等于给一个没有依据的结论,所以这里如实写成「可解析,但无校验位」。要判断一个 15 位号码是否真实,只能靠发证机关的记录。
为什么没有给出具体的市和县?
因为市县两级行政区划码有两千多条,而且每年都在变 —— 撤县设区、新区挂牌都会改代码,收进来就有一个「表过期了但没人发现」的维护负担。省级码只有 34 条,几十年不变。所以这里只给到省级:少给一个信息,好过给一个错的。需要市县信息请以发证机关或官方行政区划代码表为准。
校验位是怎么算的?
按 ISO 7064 MOD 11-2:前 17 位各自乘以一个固定权重(7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2)后求和,用和除以 11 取余数,余数 0–10 依次对应校验位 `1 0 X 9 8 7 6 5 4 3 2`。余数 10 时那一位是字母 `X`。这套算法的目的不是防伪(任何校验位都能被重算),而是拦住手抄与录入时的单字符错误,绝大多数一位写错的号码都会被它抓出来。
这些号码会被上传吗?
不会。校验与解析全部在浏览器里用几条正则与一次取模运算完成,页面不发任何请求。身份证号是我们处理过的最敏感的一类数据 —— 断网时这个工具照常工作,这本身就是「没有上传」的证据。

相关工具