韦根位宽格式:16 种布局,6 种位宽

位宽不等于格式。16 种有据可查的格式分布在 6 种位宽上,其中三种位宽的字段划分互不兼容 —— 按位宽给一个数,就是在猜。

格式位宽字段划分校验置信度本站支持
HID H10301268 位设施码 + 16 位卡号偶 2–13 / 奇 14–25高✅
HID H10306 / Honeywell N100023416 位设施码 + 16 位卡号偶 2–17 / 奇 18–33高✅
AWID RS2 34-bit348 位站点码 + 24 位卡号未公开高—
Keyscan C150013610 位OEM + 8 位设施码 + 16 位卡号偶 2–18 / 奇 19–35中✅
Simplex S1290636未公开未公开低—
AWID 36-bit36未公开未公开低—
HID H103023735 位卡号偶 2–18 / 奇 19–36(边界有争议)高—
HID H103043716 位设施码 + 19 位卡号偶 2–18 / 奇 19–36(边界有争议)高—
HID generic 37-bit3732 位卡号偶 1–2 / 奇 37–37中—
PointGuard MDI 37-bit374 位站点码 + 29 位卡号未公开中—
ATS 32-bit3213 位站点码 + 17 位卡号2 位,位置未公开中—
Generic WIE323212 位站点码 + 16 位卡号无校验中—
Kantech K32328 位站点码 + 16 位卡号未公开中—
Nedap 32-bit3216 位站点码 + 16 位卡号无校验中—
Maxxess 32-bit3214 位站点码 + 16 位徽章号未公开中—
HID Corporate 10003512 位公司码 + 20 位卡号3 位,交错分布中—

位宽不是格式

34 位是最清楚的例子。HID H10306 与 Honeywell N10002 都是 16 位设施码加 16 位卡号;AWID RS2 把同样的 34 位花成 8 位站点码加 24 位卡号。把一张 RS2 卡送进一个按 H10306 解的工具,它会交给你一组能通过所有内部检查、却打不开任何一扇门的设施码与卡号。

37 位在同一个厂商内部就重复了这个现象:H10302 完全没有设施码 —— 35 位全是卡号;H10304 则把同样的长度切成 16 位设施码加 19 位卡号。光看一帧,你无法判断它是哪一种。

36 位比「有歧义」更麻烦,因为它有一部分根本没公开过。Keyscan C15001 是 10 位 OEM 码、8 位设施码、16 位卡号;Simplex S12906 与 AWID 36 位是同长度下的另外两种布局,而 AWID 用自家调制方式,标准 HID 风格的读卡器根本读不出来。

为什么本站不做 32、35、37 位

32 位至少有五种布局 —— ATS、generic WIE32、Kantech K32、Nedap、Maxxess —— 其中好几种完全没有校验位,坏帧无法被发现,任何解码结果都不可证伪。Nedap 是 16 + 16 且无校验:与 H10306 同样的划分、一半的长度,正是这张表存在要记录的那个陷阱。

35 位是 HID Corporate 1000:专有格式,三个校验位交错插在数据里,而不是待在首尾。公开资料没说交错从哪里开始、到哪里结束,照它实现就等于对每一帧都在猜。

37 位不是因为没有布局才不做 —— H10302 与 H10304 都有充分出处 —— 卡在校验边界上:Nedap 与 promptzero/pacs 让两个 18 位区间在第 18 位重叠,Suprema 则把奇校验从第 18 位起算。35 个数据位无法均分,而这两种读法在「同时落进两个区间的那一位」上给出不同答案。等一条公开示例帧把它定案,我们再加 37 位;在那之前,这两种布局在这里只作参考列出。

这些数字从哪里来

每一行都出自厂商手册或第三方文档,并且每一行都带置信度。高=两个及以上独立公开来源一致,且布局拿真实帧核对过;中=单一第三方来源,或来源之间在某处不一致;低=字段宽度已知、但位位置没有公开 —— 别照着那几行做硬件。

表体只存在一个 JSON 文件里,这一页由它生成:数据里没有的格式不可能出现在表里,表里的行也不可能与数据脱节。哪一行写错了,正确的修法是改数据;通过联系页告诉我们,我们确实会改。