VIN 码校验位详解:第 9 位怎么算,车架号真假一测便知
VIN(Vehicle Identification Number,车辆识别代号/车架号)是 17 位字符串,刻在挡风玻璃左下角、行驶证和 B 柱铭牌上。想判断一串 VIN 是不是「编出来的」,最快的办法不是查数据库,而是算第 9 位校验位——这是 ISO 3779 内建的数学防伪,纸笔 2 分钟能验完。把 VIN 粘到 在线 VIN 校验工具 可以一键完成格式、校验位、产地、厂商、年份的全套解析;下文讲清每一步是怎么算的。
VIN 的 17 位结构
| 区段 | 位置 | 含义 | 示例(LFV3A23C8K3060386 类) |
|---|---|---|---|
| WMI | 第 1–3 位 | 世界制造厂识别码:首字符定大区,前三位定厂商 | LSV = 上汽大众 |
| VDS | 第 4–8 位 | 车辆描述:车型、发动机、车身形式(各厂自定义) | — |
| 校验位 | 第 9 位 | 由其余 16 位加权计算出的防伪位 | 数字或 X |
| VIS | 第 10–17 位 | 年份码(第 10 位)、装配厂(第 11 位)、流水号(第 12–17 位) | K = 2019 |
字符集硬规则:VIN 只用 ABCDEFGHJKLMNPRSTUVWXYZ0123456789——没有 I、O、Q(和数字 1、0、9 太像,故意排除)。抄 VIN 时把 O 当零、I 当 1,是校验失败的第一大原因。
第 9 位校验位:手算教程
第一步:转写表
字母先按固定表转成数字(注意 I/O/Q 不出现,且不等于字母序):
| 字母 | 值 | 字母 | 值 | 字母 | 值 |
|---|---|---|---|---|---|
| A=1 | J=1 | S=2 | |||
| B=2 | K=2 | T=3 | |||
| C=3 | L=3 | U=4 | |||
| D=4 | M=4 | V=5 | |||
| E=5 | N=5 | W=6 | |||
| F=6 | P=7 | X=7 | |||
| G=7 | R=9 | Y=8 | |||
| H=8 | Z=9 |
第二步:加权求和
17 个位置各乘一个固定权重(第 9 位本身权重为 0,不参与):
权重 = 8 7 6 5 4 3 2 10 0 9 8 7 6 5 4 3 2
第三步:模 11
和除以 11 取余数:余数 10 写成 X,否则就是校验位本身。
完整示例
以 1M8GDM9A?KP042788 为例(? 是待验证的第 9 位):
| 位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 字符 | 1 | M | 8 | G | D | M | 9 | A | ? | K | P | 0 | 4 | 2 | 7 | 8 | 8 |
| 值 | 1 | 4 | 8 | 7 | 4 | 4 | 9 | 1 | — | 2 | 7 | 0 | 4 | 2 | 7 | 8 | 8 |
| 权重 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 10 | 0 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| 积 | 8 | 28 | 48 | 35 | 16 | 12 | 18 | 10 | 0 | 18 | 56 | 0 | 24 | 10 | 28 | 24 | 16 |
求和:8+28+48+35+16+12+18+10+0+18+56+0+24+10+28+24+16 = 351
351 mod 11 = 10 → 校验位应为 X。所以这串 VIN 合法的形式是 1M8GDM9AXKP042788——第 9 位恰好是 X 的知名示例。手工算嫌烦的话,VIN 校验工具 会同时给出校验结论和产地/厂商/年份拆解。
第 10 位:年份码的 30 年循环
年份码从 2010 年起按 ABCDEFGHJKLMNPRSTVWXY123456789 循环(同样跳过 I/O/Q):A=2010、K=2019、L=2020、M=2021、N=2022、P=2023、R=2024、S=2025……循环长度 30 年,所以看到 A 也可能是 1980 年的车。工具解析年份时会明确标注「30 年循环,可能 +30」,不给一个假装精确的答案。
首字符地区码速查
| 首字符 | 地区 | 首字符 | 地区 |
|---|---|---|---|
| 1/4/5 | 美国 | J | 日本 |
| 2 | 加拿大 | K | 韩国 |
| 3 | 墨西哥 | L | 中国 |
| 9 | 巴西等南美 | R | 中国台湾 |
| S | 英国 | W | 德国 |
| V | 法国/西班牙 | Z | 意大利 |
国产车 VIN 以 L 开头是最常见的校验场景;进口车看首字符对产地,和铭牌对不上的基本可以判假。
校验失败的四种常见原因
- I/O/Q 混入:抄录时把 0 写成 O、1 写成 I——字符集直接不合法;
- 空格与连字符:行驶证复印件里的 VIN 常带分隔符,规范化时应剔除(工具端已做 trim + 去空格 + 统一大写);
- 第 9 位抄错:前 16 位都对、只错第 9 位——数学上必然校验失败,这也是校验位存在的意义;
- 欧规车不使用校验位:第 9 位校验位是北美强制(美国 FMVSS 115)要求,欧洲/部分其他市场车辆的 VIS 段可以不按校验位规则编码。欧规车算出来不匹配,不代表车架号是伪造的——需要结合厂商官方渠道交叉验证。
实现注记 / Implementer's note
把 VIN 校验做进工具时的三个真实取舍:其一,WMI 表是示例表而非权威库——完整 WMI 数据库(SAE 分配)不公开免费获取,工具内置了高频前缀(LSV/LFV/WBA/JHM/5YJ 等),查不到时诚实显示空而不是编一个厂名。其二,两字符 WMI 的坑:部分厂商(如丰田乘用车 JT)只有两位 WMI,第三位是车型位,实现里用 JT_ 这种带下划线的键做回退匹配——不做这层会把这些厂全部识别失败。其三,配套的测试数据生成器生成 VIN 时走「真实公开 WMI 前缀 + 随机 VDS/流水号 + 正确校验位」路线:格式校验全过,但厂商+序列组合是虚构的——测试数据不能意外对应到真实车辆,这是一条红线。
FAQ
VIN 里有字母 I、O、Q 吗?
没有。为避免与 1、0、9 混淆,ISO 3779 的 VIN 字符集排除了这三个字母。如果一串「VIN」里出现 I/O/Q,它一定不是合法 VIN。
校验位不匹配就一定是假车架号吗?
不一定。北美市场车辆强制使用校验位;欧规车第 9 位可能是序列号的一部分。校验位失败 + 首字符是 W/V/Z 等欧洲码时,先怀疑编码规则差异而不是造假。
VIN 和发动机号是一回事吗?
不是。VIN 是整车唯一识别码(17 位,车身层面),发动机号是发动机总成的编号,两者独立。过户、理赔、召回查询用 VIN。
中国车牌能在线校验吗?
可以,车牌格式校验(省份简称 + 发牌机关 + 序号 + 新能源位数规则)在本站的车牌格式规则详解一文和对应工具里有完整实现。
这篇 VIN 算法笔记整理自 ToolVault 工具匣的校验器实现过程,算例可直接在 VIN 校验工具 里粘贴验证。
补充注记
年份码解析最初版本只输出单个年份(如 K → 2019),被自己人挑刺后改成了「2019(30 年循环,可能 +30)」——假装精确比承认循环更误导人。校验位手算示例 1M8GDM9AXKP042788 同时是单测用例,权重与转写表若有回归会在 CI 第一时间暴露。
相关工具
相关文章
测试数据合规使用边界:为什么测试环境用真实用户数据本身就是违法
开发测试环境引用真实用户数据违反《个人信息保护法》:PIPL 明确目的限制原则,测试属于全新处理目的。合法替代数据四来源(脱敏/合成/公开测试段/自造)、「格式合法但随机」的技术原理(国标校验位),以及红线清单。附身份证/手机号/信用代码的校验位算法表。
个保法 PIA 影响评估自查:五类触发场景、评估三要素与实操框架
《个人信息保护法》第 55-56 条的个人信息保护影响评估(PIA):哪五类处理活动必须事前评估、评估报告的三要素结构、报告留存三年的要求,以及数据地图→风险矩阵→措施核对的自查框架。附与等保/密评的三位一体关系。
等保 2.0 自查清单:GB/T 22239 五个技术层面逐项对照,测评前的自查框架
网络安全等级保护 2.0(等保测评)前的实操自查框架:定级备案流程、五个技术层面 + 五个管理层面的高频检查项、二级与三级的差异要点、与密评的并行关系,以及送测前最常见的卡点与整改顺序。