如何正确地涂黑 PDF(一个黑框远远不够)
在敏感文字上画一个黑框并不会把它删掉,那些字仍然藏在下面。本文解释为什么这样会失败,以及如何在浏览器中真正安全地涂黑一份 PDF。
你需要分享一份文件,但要隐去几行敏感内容——一份薪资、一个地址、某个人的名字。于是你在文字上画了一个黑色矩形,然后把它发了出去。它看起来像涂黑了。其实并没有。正是这个错误曾导致法院文书外泄、线人身份暴露、政府颜面扫地,因为那些字还安安稳稳地待在文件里,就在那个框的正下方。
如果你曾经把某些东西涂黑、并以为它就此消失,那么这篇文章值得你花两分钟。
为什么一个黑框会失败
PDF 把它的内容存放在不同的图层里。文字是一回事;画在上面的图形是另一回事。当你在一句话上盖一个黑色矩形时,你是在那些字之上加了一个图形,但你并没有碰到那些字本身。它们仍然在那里,是真实、可被选中的文本,只是在视觉上被遮住了。
任何人都能把它们找回来,而且这根本不算黑客技术。选中那块区域并复制。或者把文件丢进一个文本提取工具。那些「被隐藏」的文字会连框一起原封不动地冒出来。黑色矩形骗过的是你的眼睛,而不是文件本身。
你可以亲自证明这一点。拿一份某处被框遮住的 PDF,提取它的文本。那些本应被涂黑的文字会出现在输出里,因为它们从未被删除。这既是检验,也是警示。
元数据里同样的陷阱
即便可见的文字处理好了,一份文件仍可能通过它的元数据泄露——那些携带作者名、编辑历史等信息的隐藏属性。真正的涂黑意味着同样要考虑文件结构中藏着什么,而不只是页面上看得见的东西。
在浏览器中真正安全的涂黑方法
可靠的原则是:不要遮盖文字,而要摧毁它。如果那些敏感的字在文件里已不再以文本形式存在,就没有什么可恢复的了。下面是用基于浏览器的工具做到这一点的方法,全程不上传:
- 盖住敏感部分。 在每一处需要消除的文字上放一个实心色块,让它在视觉上被遮住。仅凭这一步还不安全,关键在于下一步。
- 把页面拍平成图像。 用 PDF 转图像把文件转换为图像。这会把每一页变成一张扁平的图片。关键效果在于:文字不再是文字,而变成了像素。你色块下面的一切现在都只是图像的一部分,而那个色块被永久地涂在了它上面。
- 重建 PDF。 用图像转 PDF把这些图像重新变回一个 PDF。你又有了一份文件,但其中被涂黑的文字真正地不再以可恢复的文本形式存在。
- 验证。 把结果丢进提取文本。如果那些敏感的字没有出现,它们就是真的没了。这一检查正是整件事的重点,每次都要做。
要知道一个取舍:拍平成图像会移除整份文件的真实文本层,于是整个文件变成一张图片,不再可检索。而这正是被隐藏的文字无法被恢复的原因。如果你需要文件的其余部分保持可检索,事后可以对它做 OCR,它会根据可见内容重建一个文本层;而被涂黑的区域现在只是黑色像素,OCR 无内容可读。
为什么这必须留在你自己的设备上
想想你在涂黑的是什么:它本质上就是敏感的——这正是你要隐藏它的原因。把这份文件上传到某个在线「涂黑」工具,意味着把未经涂黑、敏感文字完好无损的原件,交到一台陌生人的服务器手里。你想要保护的东西,恰恰在保护它的那一刻被暴露了。
reader.me 在你的浏览器中运行。上述每一步都发生在你自己的设备上:文件在本地被读入内存,在那里被处理,再保存回给你,全程不上传。你可以用开发者工具(F12)在网络(Network)标签页确认这一点,或者干脆全程离线来完成。
真正的涂黑关乎删除,而非遮盖。一个黑框把文字藏在你的眼睛之外;拍平则把它从文件里移除。在本地完成,每一次都用文本提取来验证,你就能在分享一份文件时确信:你隐藏的东西,真的已经没了。