别人打开这份 PDF 时必须输入。最长 32 个字节,建议字母+数字+符号混合。
用于区分「能看」与「能改权限」的场景,留空时两个密码一致。
本工具实现 PDF 标准安全处理器(RC4)。AES-256 等新版加密暂不支持,选这类加密的文件解密时会明确提示。
用户口令和所有者(权限)口令都能解锁。密码错误会直接提示,不会生成坏文件。
输出为全新文件(原名加 _encrypted / _decrypted 后缀),原文件不会被修改。所有计算均在浏览器本地完成。
选好 PDF,这里会自动显示它的加密状态与文件结构信息。
先分清概念,再动手,避免加密完自己都打不开。
| 项目 | 是什么 | 怎么用 |
|---|---|---|
| 打开密码(用户口令) | 打开文档时必须输入 | 日常外发防陌生人看,设它即可 |
| 权限密码(所有者口令) | 修改打印/复制权限用 | 只自己留底时可设不同值,留空则两者相同 |
| 128 位 RC4 | R3 标准安全处理器 | 推荐,Adobe Reader 5.0 及以上都支持 |
| 40 位 RC4 | R2 最早期标准加密 | 仅当对方使用十几年前的老阅读器时选择 |
| AES / V5 加密 | PDF 新版加密算法 | 本工具暂不支持,会明确提示而不是生成坏文件 |
| 输出文件 | 另存为新 PDF | 原名加后缀,原文件保持不变 |
严格按 PDF 规范重建,保证文件能被正常阅读器打开。
| 环节 | 加密时 | 解密时 |
|---|---|---|
| 扫描结构 | 全文扫描所有间接对象与交叉引用表 | 同左,并定位 Encrypt 加密字典 |
| 文本内容 | 所有字符串用对象密钥 RC4 加密后转十六进制 | 十六进制/直接量串用对象密钥还原 |
| 流(stream) | 按对象编号生成独立密钥逐段加密 | 对应密钥逐段还原,内容字节不变 |
| 交叉引用 | 重建全新 xref 表、trailer 与文件 ID,偏移量全部重算 | |
| 密码校验 | 按规范算法 3 生成 U 值 | 先试用户口令,再试所有者口令,失败即报错 |
| 原文件 | 不修改、不上传,仅在内存中生成新文件供下载 | |
⚠️ 免责声明:本工具仅用于处理你本人拥有或已获授权的 PDF 文件。
本工具实现 PDF 标准安全处理器(Standard Security Handler)的 RC4(R2 40 位 / R3 128 位)方案,不支持 AES-128 / AES-256(V4-AES、V5/V6)加密,遇到这类文件会明确提示;密码完全由你本地输入,本站不收集、不传输、不留存任何密码与文件。
请务必牢记密码,密码丢失后无法靠本工具找回,建议加密后立即用下载文件验证一次能否正常打开。
所有处理均在你的浏览器本地完成,刷新页面即清除全部数据。
合同、报价单、身份证扫描件、含客户名单的报表……这类 PDF 发出去之前,总希望「只有知道密码的人能看」。可大多数在线工具要求你把文件传到别人的服务器上加密——文件本身比密码更敏感,这一步很多人不敢点。
这个工具把整件事搬进你自己的浏览器:选文件 → 输密码 → 下载新 PDF,解密同理,文件一个字节都不会离开本机。
它具体怎么做的?
① 扫描结构:在文件字节流中定位全部 N G obj 间接对象、流(stream)与 trailer,兼容古典 xref 表和交叉引用流两种组织方式,并用括号深度判定避免字典字符串里出现的「stream」字样被误判;
② 加密(设置密码):按 PDF 规范 Algorithm 2 计算所有者口令散列 O、Algorithm 5 用口令补齐串推导文件密钥、Algorithm 4 为每个对象生成独立的对象密钥,所有直接量字符串与十六进制字符串统一转 <hex> 输出,流数据按对象密钥 RC4 加密,最后生成全新的 Encrypt 字典(/Filter /Standard,R2 对应 V=1、R3 对应 V=2);
③ 解密(移除密码):读取 Encrypt 字典的 V/R/Length/O/U/P,先用你输入的口令按 Algorithm 3 校验 U 值,失败再按逆 Algorithm 2 恢复补齐用户口令、以所有者身份重试;通过后逐对象、逐流还原;V4 时仅接受 /CFM /V2(RC4),AES 与 V≥5 直接拒绝并提示;
④ 重建文件:重算全部字节偏移,输出全新 xref 表、trailer(/Size /Root /Info /ID /Encrypt)与 startxref,保证 Adobe Reader、浏览器内置阅读器等能正常打开;
⑤ 加密产物文件名加 _encrypted 后缀、解密产物加 _decrypted 后缀,原文件不动。
几个实战提醒:
· 密码最长 32 个字节(PDF 标准限制),中文口令按 UTF-8 计字节;
· 日常外发用 128 位即可,只有对方阅读器非常老才选 40 位;
· 加密后立刻打开下载文件验证一次,确认密码可用再分发;
· 扫描件、带表单、带书签的 PDF 都可处理,这些内容同样会被加密保护。
最后一句:密码与文件全程不出本机,断网也能正常使用。
实现要点:
① 字节级扫描全部 N G obj 对象、字典、直接量字符串(含嵌套括号与八进制转义)、十六进制字符串与流区间;
② 口令处理遵循 PDF 规范 Algorithm 2/3/4/5:MD5 派生、RC4 加解密、R≥3 的 50 轮散列与 19 轮异或;
③ 每个对象使用 MD5(文件密钥 + 对象号3字节内的低2字节 + 代2字节) 生成的独立对象密钥;
④ 加密后所有字符串以 <hex> 形式重写,流以 stream\n…\nendstream 规范化输出;
⑤ 重建 xref 表与 trailer,偏移 10 位零填充,文件 ID 重新生成。
它不做:不破解未知密码、不支持 AES / V5+、不上传任何文件。
_encrypted / _decrypted 新文件且不动原文件。全程浏览器本地处理,文件与密码均不上传,适配黑夜模式。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!