一、身份证号的四段结构与校验位算法
身份证号解析 把 18 位号码拆成四段展示,每一段的含义都是国家标准规定死的:
- 第 1 到 6 位,行政区划码:前两位是省级,中间两位是地市级,后两位是县区级。工具内置的地区表做到地市级,因为县区级约三千条,体积不适合塞进前端包里。
- 第 7 到 14 位,出生日期:
YYYYMMDD八位,工具在这一段之上顺带算出星期、周岁、生肖与星座。 - 第 15 到 17 位,顺序码:同一天在同一区划内登记的排序,末位数字奇数为男、偶数为女。性别就是从这一位读出来的,不是单独编码的。
- 第 18 位,校验位:按 ISO 7064:1983 MOD 11-2 算出,取值范围是 0 到 9 和 X。
校验位的算法本身很短,值得知道它在算什么。前 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
余数为 0 取 1,余数为 1 取 0,余数为 2 取 X,依此类推。这就解释了一个常见疑问:为什么会出现字母 X。因为模 11 有 11 种余数,而一位十进制数字只有 10 个取值,多出来的那一个用罗马数字 10 也就是 X 表示。工具会重新计算一遍校验位并与输入比对,错了会直接告诉你正确的那一位应该是什么。15 位老号码可以自动补全为 18 位,补的是出生年份的世纪前两位并追加校验位。
二、校验通过不等于号码真实存在
这是整篇文章最需要记住的一句话。校验位只是一个格式自洽性检查,它能挡住手抄错一位、顺序写颠倒这类输入错误,但完全挡不住「按算法伪造一个格式合法的号码」。工具本身就带有一个「随机示例」按钮,能现场生成格式完全合法但并不对应任何真人的号码,这恰好说明了校验通过的含金量有多低。
真实性核验只能通过公安部门的官方渠道,任何网页工具都做不到,包括本站的。所以正确的用法边界是:
- 可以:核对自己填表时有没有输错一位、理解号码里各段分别代表什么、快速算出某个号码对应的出生日期和周岁。
- 不能:拿它判断一个号码是不是真的、是不是某个人的、有没有被注销。
还有一类看起来像 bug 的正常现象:行政区划码在内置表里查不到,或者查出来的地名和当事人现在的户籍地不一致。原因是身份证号会保留签发当时的行政区划代码,而行政区划本身会撤销、合并、改名。比如原莱芜市已并入济南市,用老码签发的号码里那一段依然是旧代码。工具会对这类情况单独给出提示,而不是简单报错。
整个解析过程都在浏览器本地完成,号码不上传,也不写入浏览器存储,关掉页面就什么都不剩。
三、快递单号:前缀可靠,纯数字只能给候选
快递单号识别 的定位要说明白:它做的是规则匹配推断,不查任何物流接口,也不提供轨迹。适用场景是捡到一张面单、收到只有单号的短信、或者对账时不知道该去哪家官网查。
工具把匹配结果分成三档可靠度,这个分档本身就是最有用的信息:
- 可靠(带字母前缀):
SF顺丰、JD系京东物流、JT极兔、YT圆通、ZTO中通、STO申通、YD韵达、DPK德邦、CN与DB菜鸟系。字母前缀基本能唯一确定公司。另外两位字母加 9 位数字再加CN结尾的是万国邮联格式的国际邮件,由中国邮政承运。 - 较可能:位数与号段有一定特征,但和其他公司存在重叠,只能算倾向性判断。
- 仅供参考(纯数字):例如 10 位纯数字可能是德邦,也可能是几家快运;12 到 14 位纯数字里百世、天天等公司都在用。
纯数字单号推断不可靠的根本原因是:各家都在使用 10 到 15 位纯数字,号段还会随年份扩容,位数和首位数字都不足以唯一确定承运商。工具做了一个减少误导的处理——一旦命中高可靠度的前缀规则,就自动隐藏纯数字启发式的结果,不再把一堆候选并列摆出来。
实际使用时的判断顺序应该是:面单上印的公司名 > 前缀规则 > 纯数字候选。面单永远是第一优先级,工具只是在你手里只有一串数字时给个方向。查轨迹请到快递公司官方渠道或官方小程序,不要把单号交给来源不明的第三方查询站点——单号可以关联到收寄件人的姓名、电话和地址。
四、车牌、邮编、区号:内置规则库的三个共同局限
车牌归属地查询、邮编查询 和 电话区号查询 是同一类工具:把一份整理好的对照数据内置在页面里,支持按关键词模糊搜索,也支持按省份索引逐个翻看。三者都不请求任何接口,断网也能用,输入的内容不会外发。
正因为数据是内置的,它们有三个共同局限,用之前最好清楚:
- 只能查到「代码对应哪个地方」,反过来不成立。车牌查询给出的是
京A这样的号牌代码归属哪个省市,它不知道某一块具体车牌登记在谁名下,也查不到车辆信息;邮编和区号同理,只做地名与编码的双向对照。 - 数据是快照,可能滞后于最新调整。行政区划调整、新设城市、号牌代码扩容、邮编划片变更都会让对照关系发生变化,而内置数据要等下一次更新才会跟上。涉及正式用途时,以邮政、公安交管和运营商的官方公布为准。
- 粒度有限。邮编在很多城市实际上细到街道甚至单位,内置数据主要覆盖到城市与主要辖区一级;同一个地级市下面多个县区共用或分用不同邮编的情况,需要以官方查询为准。
一个实际用得上的小技巧:车牌代码的字母顺序通常反映了当年分配的先后,省会或首位城市多为 A,后续按分配顺序排下去,但这只是惯例而非规则,有直辖市按用途分段、也有省份中间跳号的情况,所以不要用字母顺序去推断城市重要性。
五、一条硬性边界:不要用这些工具处理他人的信息
前面几节讲的是准确性,这一节讲的是该不该做。这五个工具处理的输入里,有两类具有明确的个人信息属性:
- 身份证号:属于敏感个人信息,能直接关联到具体自然人。收集、使用、传输都需要合法依据和当事人同意。
- 快递单号:本身不是个人信息,但它是查询收寄件人姓名、电话、地址的钥匙,一旦流出等于泄露了一整条寄递记录。
所以请把使用范围限定在自己的信息上:核对自己填错的号码、识别寄给自己的包裹、查自己要邮寄的地址邮编。不要把别人的身份证号粘到任何网页里,包括本站的工具页——即使本工具在浏览器本地计算、不上传、不落盘,这个习惯本身也是危险的,因为你没法保证下一次粘贴的目标网站也是这样实现的。同样不要在群里、社交平台上转发完整的身份证号和快递面单,面单丢弃前先把收件人信息涂掉或撕掉。
常见问题
工具说校验位正确,能证明这个号码是真的吗?
不能,这是最容易被误解的一点。校验位只保证号码在数学上自洽,用来发现输入错误,不代表这个号码在公安系统里真实存在或对应某个特定的人。按算法伪造一个校验位正确的号码毫无难度,工具自带的「随机示例」就是现场生成的合法格式号码。真实性核验只有公安部门的官方渠道能做。
为什么解析出的地区和我现在的户籍地不一样?
因为身份证号里的行政区划码固定为签发当时的代码,之后行政区划撤销、合并或改名都不会回溯修改已发出的号码。老号码带着旧代码是完全正常的现象,工具遇到内置表里查不到的代码时会单独提示,而不是当成错误号码处理。如果需要以现住地或现户籍地为准的证明,只能通过户籍所在地的公安机关出具。
纯数字快递单号识别出好几家公司,该信哪一个?
以面单上印的公司名为准,这一条永远优先。工具在纯数字情况下给出的是候选,并且已经标注为「较可能」或「仅供参考」,因为各家的纯数字号段大量重叠、还会随年份扩容。如果手上没有面单,可以拿单号到候选公司的官网或官方小程序逐个试查,能查到轨迹的那家才是真的。
邮编和区号数据多久更新一次,能直接用于正式寄件吗?
这三个查询工具用的都是页面内置的对照数据,属于某个时间点的快照,不会实时跟随行政区划调整和邮编划片变更,所以定位为快速查阅和辅助记忆。日常寄件、填快递单基本够用,但涉及合同地址、公文、报关等正式场景,请以中国邮政官方查询结果和当地官方公布为准。