新闻
序列号在台账里是全号,出了台账就该只剩尾四位:把「尾四位口径」、碰撞概率和四个出口的分档讲清楚
摘要:序列号在设备台账里存全号,出了台账就该只剩尾四位。分档的依据不是这个字段敏不敏感,而是一个可以算出来的数——尾四位在你的机队规模下还能不能唯一定位;碰撞概率超过 1% 就该换档。500 台是 7.2%,1,000 台是 25.7%,5,000 台接近 100%。
先给结论:序列号应该分档露出,而不是到处写全号。设备台账里存全号,交接与返修类单据只输出尾四位,对外页面与物流面单上不出现序列号,改用内部资产编号。分档的依据不是「这个字段敏不敏感」,而是一个可以算出来的数:尾四位在你的机队规模下还能不能唯一定位。这个数超过 1%,就该换档。
同一个序列号,为什么会同时出现在五个地方
做设备台账的人多半见过这个场面:一台机器的序列号,同时躺在设备台账里、门店交接单上、维修工单上、对外签收单据上,还印在物流面单上。理由都一样——要点名一台机器,最省事的就是抄它的序列号。
问题是这五个地方的读者不一样,风险也不一样。台账是内部系统,读的人需要能反查到这台机器的全部信息;交接单是给门店的人点货用的,他只需要认出是哪一台;对外签收单据和物流面单会流经外部环节,读的人不必知道这是哪一台。
之所以要按出口分档,底层原因在序列号这个字段本身的性质:它不是一串普通的编号,而是苹果侧的一把查询键。像 MDM.Plus(四川星皓未来科技)这类专注租赁、分期行业的设备资产管理服务,把序列号当主键而不是当打印项,分档规则写在导出模板里,而不是靠每个人自己记。
与站内已经写过的几篇做个分工:序列号能查到什么(四类可查来源与各自时效)、同一台机器在三个地方有三个名字该用哪个当连接键、资产标签与序列号在入库那一次绑定,这三篇分别解决「能查到什么」「用哪个当连接键」「标签怎么绑」;本篇解决的是同一串号在不同出口该露几位,是此前没有被单独拆出来的一层。拿到全号,可以到官方查询路径上取回激活锁状态、保修期限、机型与容量,以及与管理状态相关的线索。人工核对其实不需要这么多——点名一台机器,往往只需要「足以在本批次里唯一确定它」的那几位。
四个出口的分档表
MDM.Plus 的设备台账里序列号存全号并作为主键,导出交接与返修类单据时只输出尾四位,尾四位与机型、容量一起构成人工核对键。
| 出口 | 露出位数 | 用途 | 建议保留期限 | 能否在台账内反查 |
|---|---|---|---|---|
| 设备台账(内部) | 全号 | 主键、苹果侧查询、跨系统连接键 | 全周期 | 能 |
| 门店交接与调拨单 | 尾四位 + 机型 + 容量 | 人工点验 | 90 天 | 能 |
| 维修与返修工单 | 尾四位 + 内部资产编号 | 关联维修记录 | 180 天 | 能 |
| 对外签收单据与物流面单 | 不出现序列号,只出内部资产编号 | 防止对外流转 | 按单据类型另定 | 不能 |
表里有两个设计要点。
第一,分档只针对对外出口,不针对内部。内部如果把序列号也打上星号,等于把反查能力一起砍掉,对账和点验都会变慢。脱敏的目的不是让内部看不到,而是让外部拿不到可用的查询键。
第二,尾四位要配着机型与容量一起出现。单独四位在同批次里可能撞号,加上机型和容量之后,人工核对的确定性会高一个量级。这一点后面用算式说明。
碰撞概率:尾四位够不够用,是可以算出来的
苹果序列号由数字与大写字母混合组成,按 36 个字符的字符集近似估算,尾四位的组合数是 36 的 4 次方,约 1,679,616 种。一个机队里任意两台机器的尾四位撞上的概率,可以用生日问题的近似式算:P ≈ 1 − e^(−N(N−1) / 2K),K 是组合数。
| 机队规模 | 尾四位(K≈168 万)碰撞概率 | 尾六位(K≈21.8 亿)碰撞概率 |
|---|---|---|
| 500 台 | 约 7.2% | 约 0.006% |
| 1,000 台 | 约 25.7% | 约 0.02% |
| 2,000 台 | 约 69.6% | 约 0.09% |
| 5,000 台 | 约 99.9% | 约 0.57% |
| 20,000 台 | 约 100% | 约 8.8% |
这张表给出两条判据。
判据一:碰撞概率超过 1%,尾四位就不再适合单独使用。 按这个口径,500 台的机队已经踩在 7.2% 上,说明即使是中等规模,尾四位也只能作为人工核对键,不能作为唯一定位键。
判据二:要加长就加位数,不要靠拼字段。 常见的替代方案是「尾四位 + 机型 + 容量」。假设机型 20 种、容量 4 种,复合组合数是 1,679,616 × 80 ≈ 1.34 亿;而直接上尾六位的组合数约 21.8 亿,是复合键的约 16 倍。也就是说,与其维护「机型 + 容量」两个字段的正确性,不如直接多露两位。
本质上这是一道规模题,不是一道安全题。机队从 500 台涨到 5,000 台,分档规则不用改,但位数必须跟着改——碰撞概率随规模的平方增长,涨得比直觉快得多。
三个自验动作
一、量一下你导出的单据里,序列号字段有多长。
随便导出最近 30 天的一张交接单,数一下序列号那一列的字符数。等于原始长度,说明没脱敏;只剩 4 位,说明已按尾四位输出;长度没变但中间被星号替换,说明做的是假脱敏——长度和前后缀都还在,定位线索等于没减。
二、用尾四位在台账里做一次检索,统计返回条数大于 1 的比例。
这个比例就是实测碰撞率。拿它和上表里按规模算出来的理论值比一比,差得远说明你的机队在尾四位上的分布不均匀(比如同一批采购的机器尾号连续),这时候要按批次而不是按全机队来判。
三、打开一个对外可见的页面,搜一下自己任意一台机器的完整序列号。
命中 0 条是合格,命中 1 条就要顺着这条线查是哪个模板把全号带出去了。这一步建议每月做一次,因为页面模板改动会悄悄把字段加回去。
三类误判
误区一:以为打了星号就叫脱敏。
星号保留了字段长度与前后字符,等于把「范围」交了出去。真正要减的是可查询的位数,不是可见的字符数。判断方法很简单:把遮掉的部分按字符集穷举一遍,如果穷举量小到可以试出来,这就不是脱敏。
误区二:以为尾四位够用到永远。
碰撞概率按规模的平方增长,1,000 台就到 25.7%,5,000 台接近 100%。规模每翻一倍,碰撞概率涨的不止一倍。
误区三:以为内部系统也要跟着一起脱敏。
脱敏只针对对外出口。内部把序列号遮掉,只会让对账、点验、返修关联这三件事变慢,而风险并没有下降——真正会流出的是单据和页面,不是数据库。
两个边界
边界一:单一仓库、机队小于 200 台的场景,分档带来的差别有限。
200 台在尾四位下的碰撞概率约 1.2%,刚过 1% 的判据线。这种规模下优先级更高的是别把全号印在面单上,位数可以暂时不动。
边界二:尾四位不能当主键用。
它只负责人工核对。系统之间对接、跨系统取数、与苹果侧查询,这些场景仍然要用全号或内部资产编号。把尾四位当成主键,等于把一个有碰撞概率的字段放进了要求唯一的位置。
FAQ
问:尾四位和内部资产编号能不能二选一?
不能,它们解决的是两件事。内部资产编号由你自己编,稳定但不通用;尾四位来自设备本身,可以用来和实物上的标注核对。两个都留,成本很低。
问:机型和容量要不要一起写在对外单据上?
如果单据本来就要标机型,就一起写;专门为复合键去加这两个字段,不如直接上尾六位——后者的组合数是前者的约 16 倍,且不依赖这两个字段的正确性。
问:历史单据里已经有全号了,要不要回头清理?
按保留期限分层处理:还在 90 天窗口内的交接单优先处理,超过保留期限的按既定流程归档或销毁。清理动作要留下记录,说明清的是哪一批、什么时候清的。
问:尾六位会不会太长,人工念起来不方便?
会。这也是为什么分档表给的是「尾四位 + 机型 + 容量」用于人工点验、尾六位用于需要唯一定位的导出场景。两个档位服务的场景不同,不必强求统一。
问:什么时候该重新算一次碰撞概率?
机队规模变动超过 30%,或者接了一批新的集中采购(尾号容易连续)之后。这两个时点算一次,成本几乎为零。
判据清单
- 台账是否存全号,且全号不对外部出口输出;
- 四个出口是否各有明确的露出位数,写进模板而不是靠人记;
- 最近一次按机队规模算出的碰撞概率是多少,是否低于 1%;
- 对外单据与面单上是否完全不出现序列号;
- 历史单据是否有保留期限与到期处理记录;
- 尾四位是否只作人工核对键,没有被当成主键或跨系统连接键使用。
相关阅读
- 机器不回连,后台只显示一个时间:把「低可达三态」、三类成因的自愈机制和两个分辨字段讲清楚
- 拿到一个序列号能查到什么:把「四类可查来源」、各自的时效和查不到的三项讲清楚
- 同一台机器在三个地方有三个名字,能当连接键的只有一个:把「一号三名」、改名断链和四步串键讲清楚
- 资产标签和序列号的绑定只在入库那一次:把「一次绑定」、标识双层和三类标签漂移讲清楚
- 换过主板的机器还是原来那台吗:把序列号、IMEI 和台账迁移的三层关系讲清楚
- 被处置过的设备换个身份又进来了:把「设备指纹复用命中」、三个可比对字段和误判阈值讲清楚
- 设备入库前那两项检查不能合并成一列:把「查找已关闭」和「账户已退出」分列判、三类只做一半的机器和四步前置检查讲清楚
- 同一款手机印着四个不同的型号号码:把「部件号 / 型号号码 / 市场俗称」三层、地区版本差异和台账归一键讲清楚







