跳到正文

如何正确给PDF涂黑脱敏

在文字上盖一个黑色矩形并不是涂黑脱敏。文字仍在文件里,任何人大约四秒钟就能读出来。下面介绍真正有效的做法,以及如何确认它确实生效了。

最后审阅:

常见的错误,以及它为何屡屡发生

PDF页面就像一个绘图程序。文字是一条指令,在特定坐标上放置特定字符;黑色矩形是另一条指令,填充一块区域。画上矩形并不会删除文字——只是盖在文字上面。字符仍在文件里,就在下面,选中那块区域就能把它们复制出来。任何免费工具几秒钟就能提取出来。

这种错误屡屡发生,是因为界面告诉您它成功了。您画一个框,文字从视线中消失,保存文件,看起来和涂黑脱敏过的文档一模一样。没有错误,没有警告,与正确的涂黑脱敏看不出任何区别。您读到过的每一起公开的涂黑脱敏失败事件——未脱敏的法庭文件、和解金额、证人姓名、被删除内容几分钟内就被恢复的情报报告——都是有人画了一个形状并信以为真。

用黑色高亮文字是换汤不换药的同一个错误;在文字处理软件里用白色矩形盖住文字再导出为PDF,也是一样。

真正的涂黑脱敏做了什么

顺序是反过来的。先从页面内容中删除文字,之后再画上黑框,作为此处原有内容的视觉标记。复制涂黑区域什么也得不到,因为那里什么都没有;提取页面文字,那些词根本就不存在。

这正是本站PDF涂黑脱敏所做的,而且它会报告删除了多少处文字——这很重要,因为没有匹配到任何内容的涂黑脱敏,看起来与成功的一模一样。如果您在一个名字上画了框却没有删除任何内容,那么这个名字很可能是图片的一部分,而不是文字,需要看下一段。

图片中的文字是另一个问题

扫描页面中的名字,或粘贴到报告里的截图中的名字,根本不是文字——而是像素。删除文字碰不到它,在上面画框也正是上文所说的无效遮盖,因为下面的像素仍保留在图片数据中。

解决办法是在应用涂黑脱敏后重新渲染这些页面,让那些像素真正不复存在。这是有实际代价的,值得了解:这些页面会变成图片,其中的文字将无法再选中,文件也会变大。对于扫描文档,这没有任何影响,因为它本来就是图片。对于混合文档,这是一种取舍。

一般的图片也是如此。如果您要模糊人脸或车牌,请模糊到足够强,让该区域看不出任何可见的结构——研究人员曾通过生成候选内容并逐一比对,从较弱的像素化中重建出文字。如果您仍能猜出原来有几个字符,那就还不够强。

PDF中还藏着哪些您忘了的名字

这一部分会让那些正确完成了涂黑脱敏的人栽跟头。PDF存放文字的地方不只是可见的页面,对页面的完美涂黑脱敏会让其他每一处都原封不动。

书签目录中经常有包含名字的章节标题。表单字段的值即使字段不可见也依然存在。文件附件可能是藏在PDF里的完整文档。文档信息和XMP元数据包记录了标题、作者、软件,常常还有原始文件路径——这会暴露用户名和目录结构。注释和批注有它们自己的文字和作者姓名。还有文件名本身,文档走到哪里它就跟到哪里。

还有一处,也是最隐蔽的:增量保存的PDF会在同一个文件中保留早期版本。如果文档是经过编辑后保存,而不是重新写出的,那么某一页的旧版本可能仍在其中。这就是为什么对任何重要文件来说,下面的核实步骤都不是可有可无的。

核实结果,以及怎么核实

核实是人们常常跳过的一步,却恰恰是真正保护您的那一步。以下三项检查,一项比一项彻底。

打开处理后的文件,试着选中涂黑的区域。如果能复制出任何内容,立即停下。这一步五秒钟就能发现最基本的失败,每一次都值得做。

查看文档属性。标题、作者、主题和关键词在任何PDF阅读器的“文件”→“属性”中都能看到。如果作者字段正是您刚花一个小时删除的那个名字,那么这次涂黑脱敏就毫无意义。

重建文件。用一个根据页面实际引用的内容重写文档的工具处理结果——Ghostscript的gs -sDEVICE=pdfwrite,或qpdf --empty --pages out.pdf 1-z --——可以丢弃未被引用的对象和早期版本。再加上exiftool -all:all=可以清除元数据。对于法庭文件或任何需要披露的文件,三项都要做,并请别人再检查一遍。

删除页面也不等于涂黑脱敏

这一点值得单独说明,因为它属于同一类错误。删除PDF页面会用您保留的页面生成一份新文档——但保留页面上指向已删除页面的链接仍然需要能够解析,这会把已删除页面的一份副本带进新文件,成为一个没有任何页面树引用的对象。在任何阅读器中都看不见,却实实在在存在于字节之中。

如果只是想让某一页不再显示,删除就是正确且足够的做法。如果要让它的内容彻底不复存在,请删除页面,并按上述方法重建文件。

常见问题

黑框在什么情况下可以接受?

只有作为真正涂黑脱敏之上的视觉标记时才可以。单独使用时,它只能对没有刻意去看的读者隐藏文字,对其他任何人都无效。如果文档将要发布、提交或披露,请把单独的黑框视为根本没有涂黑脱敏。

改用扁平化PDF可以吗?

扁平化会把批注固化到页面中,确实能让画上的框永久成为图形——但它下面的文字属于页面内容,不是批注,所以仍然在那里。扁平化适合用来固定表单答案和签名,而不适合隐藏文字。

可以把PDF转换为图片来涂黑脱敏吗?

可以,因为一张盖了框的页面图片下面确实没有文字。但代价是实实在在的:文档将无法搜索,文件会变大,而且元数据通常还是会被带过去——所以您仍然需要单独清理元数据。

打印为PDF能删除隐藏的文字吗?

对于页面内容,通常可以,因为页面会被重新渲染——这也是它有时会歪打正着的原因。但这不是可靠的方法,它不会清除所有元数据字段,而且取决于打印机驱动。请使用明确说明会删除哪些内容的工具。

在网站上对敏感文档进行涂黑脱敏安全吗?

本网站在任何环节都不存储任何文件,这正是本站提供涂黑脱敏功能的原因——人们需要涂黑脱敏的文档,恰恰是最不应该留在陌生人服务器上的文档。对于法律文书,请使用为这类高风险场景打造的软件,并亲自核实结果。