PrivScrub 的原理与方法

方法已复核 · 2026-06-10

与其让你「相信我们」,不如把实现摊开给你看。下面逐条讲清每个承诺是怎么落地的:为什么文件根本传不出去、真脱敏如何物理删除文字、PII 检测背后的校验数学。所有逻辑都是你能在浏览器开发者工具里审计的客户端代码。

为什么文件从不上传(以及怎么自己验证)

PrivScrub 是纯静态站点,没有任何处理文件的后端。不存在接收文件的服务器端点,你的文件也就没有任何可被上传的去处——这是架构事实,不是一句可以被悄悄违背的口头承诺。

你可以两种方式自验:关掉网络,确认每个工具照常工作;或打开浏览器开发者工具的网络面板,确认处理文件时没有任何上传请求。

光栅化实现真脱敏

在文字上画黑矩形,底层文字对象仍原封不动地留在 PDF 内容流里,这正是「黑框脱敏」会泄密的原因。PrivScrub 的做法是:对任何含脱敏的页整页光栅化——把页面渲染成位图、把黑块烧进像素、再用这张光栅图替换原页。

原文字对象在该页上不再存在,因此对被遮区域复制、解析、OCR 都拿不回内容。代价是被脱敏的页失去可搜索文字层——对一份正在被脱敏的文件,这是可接受的取舍。

文档元数据(作者、创建程序、时间戳)默认在同一步一并清除,因为脱敏了正文却留着身份元数据,是最常见的隐性泄密。

带校验的 PII 检测

只靠格式(位数)找身份证号、卡号,会产生刺眼的误报,因为订单号、随机 ID 和它们位数相同。PrivScrub 在报警前先用号码自带的校验算法做数学验证。

中国第二代身份证(18 位)用官方 ISO 7064 mod-11-2 算法对前 17 位算校验位比对;银行卡号用 Luhn 算法校验。这样能把格式合法的真号从随机数字串里筛出来,扫描结果才可信、可用于脱敏前把关。

无损去 EXIF / 元数据

对 JPEG,PrivScrub 只删除 EXIF 数据段(GPS、时间戳、设备型号),不重新压缩像素,画质零损失。很多「重新导出顺便丢 EXIF」的做法会悄悄二次压缩 JPEG,我们避开了这一点。

EXIF 查看工具会在你删除前,原样展示一张照片携带了哪些元数据,让你看清「本来会泄露什么」。

诚实的边界

  • 模糊打码在极端情况下存在被技术手段部分还原的理论风险;最高安全性请用纯黑块或像素化。
  • 自动人脸检测依赖浏览器原生能力,支持有限;不支持时由你手动框选人脸。
  • 扫描件(纯图像)需先 OCR 才能自动检测 PII,而 OCR 会引入识别误差。
  • PrivScrub 不能替代经认证的、证据级的法律/医疗脱敏——这类需求请咨询专业人士。

参考与真实案例