中国身份证号和银行卡号是怎么在文档里被检测出来的
格式匹配可以找出候选号码,校验位可排除部分不自洽的结果,但不能证明号码真实存在或属于某个人。PII 检测在浏览器本地运行,结果仍需要结合文档上下文复核。
身份证:mod-11-2 校验位
中国第二代身份证 18 位,最后一位是校验位。前 17 位各乘以固定权重求和、对 11 取模,再查表得到应有的校验位(可能是数字或 X)。
检测器算一遍校验位、和最后一位比对:对得上才判定为疑似身份证号。这样能滤掉绝大多数恰好 18 位的随机串。
银行卡:Luhn 算法
主流银行卡号(及很多卡号)满足 Luhn 校验:从右往左每隔一位翻倍、超过 9 减 9,全部相加能被 10 整除。
Luhn 可排除校验不通过的数字串,但随机数字也可能通过。通过仅说明校验关系成立,不确认真实账户。
为什么校验比正则更准
纯正则(匹配「18 位数字」)会把订单号、运单号、随机 ID 全报成身份证,误报刺眼、还让人忽视真警报。
校验位可以减少一部分格式匹配产生的误报,但不能消除误报或漏报。仍需阅读上下文。
检测到之后
PII 检测器报出疑似敏感字段后,你可以回到文档里把对应区域真脱敏(光栅化删除),而不只是知道「这里有」。
整条链路——检测、校验、脱敏——都在浏览器本地,号码不上传。
PrivScrub 当前 PDF 支持范围
PDF 编辑支持最多 50 页、25 MiB 的基础未加密文件。非空批注、内部或外部链接、表单、附件、动作及图层不受支持,会在导出前停止处理。脱敏会将每一页重新生成为图片,所有页面都失去可搜索文字和文字无障碍信息。元数据清理保留受支持的页面内容。成品检查重新读取实际文件,只覆盖所列项目,不运行 OCR。请逐页目视复核实际成品。
常见问题
通过校验就一定是真实有效的证件/卡吗?
不一定。校验只证明号码在格式与校验位上自洽,不代表它真实存在或归属某人。但作为「需要脱敏的疑似 PII」的判据已经足够。
会不会漏掉一些真号?
可能。比如被空格/连字符拆开、或 OCR 识别有误的号码。所以检测是辅助,分发前仍要人工通读一遍。