PDF 加密与解密
给文件套一层口令再发出去,或者把已知口令去掉,导出一份谁都能打开的无密码副本。
文件只在浏览器里读取和写出,不会上传到任何服务器,断网也能用。
处理方式
两个口令至少填一个。只填权限口令时文件不需要密码就能打开,但会带上下面选定的限制。
加密算法
默认也是推荐项,ISO 32000-2 保留的唯一算法,现代阅读器都认
权限限制
这些限制靠阅读器自觉遵守,很多看图软件和在线工具根本不理会,只能拦住守规矩的读者。
使用说明
PDF 加密可以设两个口令,作用完全不同。打开口令(用户口令)是查看文件时输入的那个,没有它连内容都看不到;权限口令(所有者口令)是管理口令,用它可以解除打印、复制这些限制,也能重新设置口令。两个可以不同,也可以只设一个:只设权限口令时任何人都能打开文件,但会带上你在下面勾选的那些限制。
但权限限制在现实里并不可靠。它只是写在加密字典里的几个标志位,靠阅读器自觉遵守,Acrobat 会照做,很多看图软件、手机阅读器、在线转换服务根本不理会,照样能复制文字、导出图片、重新打印。所以真正的用途是给内容加一道门槛、拦住顺手转发和误用,不能当成防泄露的最后一道防线。要防内容被取走,更实际的做法是压成图片再加平铺水印,可以用PDF 加水印。
去口令那一步必须是「新建一份文档,再把每一页复制过去」,不能直接在解开后的原文档上保存。原因在于保存原文档会把它的 /Encrypt 加密字典一起写回结果,输出文件要么仍然打不开、要么直接被阅读器当成损坏文件。用 copyPages 重建出来的新文档不含加密字典,内容是明文,任何阅读器都能打开。代价是只有页面内容、尺寸和旋转会跟着走——书签目录、表单字段、附件、文档属性这些只属于原文档的东西会丢,处理前建议留一份没有口令的原稿,或者先去PDF 压缩看看能不能顺带整理一下体积。
算法上直接选默认的 AES-256 就好,它是 ISO 32000-2 保留推荐的算法,现代阅读器都支持,口令用 UTF-8 编码,中文也能用。AES-128 只在要兼容很老的阅读器时才考虑。RC4 已经被标准移除,密钥也短,除非必须迁就十多年前的老软件,否则不要用。要提醒一点:AES-128 和 RC4 用的是老一代口令处理方式,只认单字节字符,中文口令会直接报错;忘记口令也没有任何办法找回,文件里只存校验数据,不存口令本身。
常见的搭配是:给要外发的合同加打开口令,用PDF 合并把几份文件先接成一份再统一加密;要交给别人继续编辑的草稿则只加权限限制而不设打开口令。如果还需要拆分或只挑几页导出,用PDF 拆分或PDF 加页码处理完再来加密。
常见问题
设了密码还能被别人打开吗?
打开口令挡得住顺手翻看的人,挡不住有心的人。加密强度足够,但口令本身可以被暴力尝试,短口令和常见词很快就被猜到,所以口令要长一点。另外加密只是把文件内容锁住,文件依然可以被复制走,只是打不开。
打开口令和权限口令有什么区别?
打开口令(用户口令)是查看文件时输入的那个,没它连内容都看不到;权限口令(所有者口令)是管理员口令,用它可以解除打印、复制这些限制,也能改口令。两个可以设成不同的值,也可以只设一个。只设权限口令时文件任何人都能打开,但受限制。
设了权限限制,别人真的不能复制吗?
不能指望。这些限制写在文件的加密字典里,靠阅读器自觉遵守,绝大多数看图软件和在线转换服务根本不理会,照样能复制文字、导出图片。想真正防止内容被取走,只能靠图片化或水印,而不是靠权限位。
去完密码为什么书签和表单没了?
因为去口令必须新建一份文档再把每一页复制过来。只有页面内容、尺寸、旋转会跟着走,书签目录、表单字段、附件、文档属性这些只属于原文档的东西不会跟过来。直接在解开的原文档上保存是行不通的,那样输出仍带着加密字典,等于没解密。
AES-256 和 RC4 该选哪个?
默认的 AES-256 就好,它是 ISO 32000-2 保留推荐的算法,现代阅读器都支持。AES-128 只在需要兼容很老的阅读器时才用。RC4 已经被标准移除,密钥也短,只有在必须迁就十年前的老软件时才考虑,而且要显式勾选允许弱加密。
为什么中文口令会提示不能用?
AES-256 用 UTF-8 编码口令,中文没问题。但 AES-128 和 RC4 用的是老一代的口令处理方式,只认单字节字符,遇到汉字和中文字符会直接报错。所以要么把口令换成英文字母数字,要么改用 AES-256。
密码忘了还能找回来吗?
找不回来。加密口令不会被存进文件里,只留一份校验数据,所以没有任何办法反推出原口令,本站也帮不上忙。设口令前建议先记进密码管理器,或者把口令写在只有自己能看到的备注里,别只靠脑子记。