工具
指南

证件号码验证器(多国)

转换

验证 15 个国家/地区的证件号码:本地检查中国、美国、英国、加拿大、澳大利亚、印度、日本、韩国、俄罗斯、法国、德国、西班牙、葡萄牙、孟加拉国和沙特阿拉伯的格式与校验位。不查询、不存储。

100% 客户端 无后端
100% 客户端。本工具仅在浏览器本地检查号码的格式与校验位,不查询任何数据库、不识别持有者、不存储、不向任何地方发送号码。
本页内容

什么是证件号码校验?#

国籍身份证号不是一串随机字符——大多数国家在里头嵌入了结构(地区码、出生日期、顺序号),并在末尾加上一个由前面数字算出的校验位,于是只要抄错一位,号码就会通不过自检。校验器就是把这种结构逆向拆开:先确认长度和字符模式合法,再从前面的载荷重新算出校验位并比对。两者吻合,号码就是格式良好的;不吻合,就是抄写出了错。

本页支持 15 个国家(中国、美国、英国、加拿大、澳大利亚、印度、日本、韩国、俄罗斯、法国、德国、西班牙、葡萄牙、孟加拉、沙特阿拉伯)的证件号码,每个国家用各自的算法——中国居民身份证用 ISO 7064 MOD 11-2 查表,印度 Aadhaar 用 Verhoeff 二面体群校验,德国 Steuer-ID 用递归 MOD 11,10 链,等等。页面会分别告诉你三件事:格式是否合法、校验位是否通过(部分国家没有校验位)、以及规范化后的标准写法。

刻意不做的事,是查任何东西。没有数据库、没有登记册、没有网络请求——顶部的提示横幅写得很明白。“有效”只意味着这个号码结构上格式良好,并不意味着它属于某个真实的人。

怎么用#

  1. 从下拉框选择 Country(国家)。列表会尽量按你的页面语区预选(中文页默认 CN,日文页默认 JP,以此类推)。
  2. 键入或粘贴 Number(号码)。空格和连字符会被容忍并去掉;相关时字母自动大写(中国的 X、西班牙的控制字母、英国 NINO 前缀)。
  3. 点击 Validate(校验)。结果卡片给出”有效/无效”标题,然后是四行:Format(格式,通过/未通过)、Checksum(校验位,通过/未通过/不适用)、Normalized(规范格式化形式)、Reason(未通过的原因——空、格式、校验位,或全部通过)。
  4. Clear 重置表单。整个交互都在你的浏览器里运行,不存储、不发送。

核心特性#

  • 15 国,15 种独立算法。 从中国的加权 MOD 11-2、印度的 Verhoeff,到法国 97 − (n mod 97) 的 clé(含科西嘉 2A/2B 省份特例),每个国家都用其真实公布的校验算法——而不是把通用 Luhn 套到所有号码上。
  • 格式与校验位分开报告。 有些号码(美国 SSN、英国 NINO、孟加拉 NID)没有校验位;对它们,校验位行显示”不适用”,有效性只看格式——于是绝不会在根本不存在校验位时告诉你”校验位通过”。
  • 看结构,不查登记册。 例如中国校验器会拒绝 19900230(2 月 30 日)这种生日、以及不在 GB/T 2260 集合里的省份前缀——这些都是号码本身的结构事实,与持有人是谁无关。
  • 规范化输出。 合法输入会按各国习惯分组美化(美国 123-45-6789、法国 1 23 45 6L 123 456 01、日本 1234 5678 9012),方便复制标准形式。
  • 不查询、不存储、不联网。 页面顶部提示强调:输入永远不会离开你的浏览器。可以用它来核对你已有的号码,但它无法告诉你这个号码是谁的。

实例演示#

取一个合成的、校验位正确的中国居民身份证号(专为演示构造):110101199001010015(地区 110101、生日 19900101、顺序号 001、校验位 5)。粘进 CN 校验器,卡片显示:

Status:     Valid(有效)
Format:     Pass(通过)
Checksum:   Pass(通过)
Normalized: 110101199001010015
Reason:     All checks passed(全部通过)

末位 5 是用前 17 位、按权重 [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] 和查表 1,0,X,9,8,7,6,5,4,3,2 重算出来的——加权和为 106,106 mod 11 = 7,查表第 7 位正是 5。把末位改成 6,校验位立刻翻成 Fail(未通过),而格式仍然通过——单个抄写错误就是这样被抓住的。生日段也会被核对:19900230 会在格式校验上失败,因为 2 月 30 日根本不是真实日期。

作为对比,美国社会保障号(如 123-45-6789没有校验位,所以它的校验位行显示”不适用”,有效性只取决于地区/组别/序号的范围规则——这提醒我们:不同国家的”有效”含义并不相同。

常见问题#

”有效”是不是意味着这个号码属于某个真实的人?#

不是。它只意味着这个号码结构上格式良好:长度正确、字符合法、结构合理,并且(在设有校验位的国家)校验位正确。一个随机但格式良好的号码,可能从未被分配、属于已故者、或根本没签发过。本工具不能、也不会查询某个号码属于谁。

为什么校验位行有时候显示”不适用”?#

因为不是每个国家都在证件号里放了校验位。美国 SSN、英国 National Insurance 号、孟加拉 NID 只做格式校验——没有自检位可重算。工具如实报告”不适用”,而不是假装校验位通过了。

把真实的身份证号粘进这个页面安全吗?#

页面是 100% 客户端的:没有后端、没有网络请求、离开页面后什么都不存。话虽如此,对待任何真实证件号都应谨慎——只粘给你信任的页面。如果你只是想测自己的校验逻辑,请用合成号码(正如上面的实例那样),而不是某个真实的人的号码。

为什么我的法国号码明明数字没错却被拒?#

法国 NIR 以两位 clé 结尾,按 97 −(13 位 NIR mod 97) 计算,而省份位可以是科西嘉的字母 2A2B(数学上须当作 1918 处理)。如果 clé 对不上,或科西嘉省份没按字母形式输入,号码即便”看起来全是数字”也会被拒。请按公式核对最后两位。