fxjd 打开下载页后,在「输入密码」框里填这 4 位,再点它下方的按钮即可下载,不用注册、不用登录。
这个工具解决什么问题
「给 PDF 加个密码」这件事,桌面端一直有两个坑。第一个坑是加密强度:不少号称能加密的免费工具,底层写的是 RC4 40 位或 128 位(老一代 PDF 库到今天也只有这两个档位),2026 年的阅读器会直接提示「加密强度过低」,走安全审计也过不去;而真要按现代标准写 AES-256,可选的桌面工具要么收费、要么得装一堆运行环境。第二个坑是权限组合:多数工具只会「设一个打开密码」,做不到「打开不用密码,但不许打印、不许复制、不许改」——这恰恰是把文件发出去时最想要的形态。在线「PDF 加密」网页最省事,但合同、标书、审计底稿、内部教材恰恰是最不该上传的那一类文件;命令行加密引擎能力强,可要记参数、看英文输出、密码还会原样留在进程命令历史和脚本里。
- 原来的做法:找一个免费小工具加个密码发出去,对方说「阅读器提示不安全」;想只禁打印不禁阅读,翻遍界面找不到那个勾;收到的加密件要脱密,得先把密码抄进命令行,再担心这条命令会不会被记进历史记录
- 用这个工具:选中 PDF → 看清水印式的状态行(未加密 / RC4 / AES-128 / AES-256 / 需要密码)→ 填打开密码与权限密码、勾要放开的三项权限 → 点「开始处理」→ 得到一份新 PDF,界面同时报输出路径、大小变化、页数核对结果;脱密就切到「解密」,输一次密码即可
- 省下来的:不用上传文件、不用装命令行环境、不用记参数;密码不出现在进程命令行里(任务管理与命令历史都看不到);源文件保持原样——输出永远是另一个文件,输入输出同名会被直接拒绝;勾选的权限不是「我说生效」,成品里的能力位会被回读核对
能做什么
窗口是一屏到底的单文件流程:上半是源文件与输出路径,中间随「操作」切换加密/解密面板,下半是状态与结果。窗口固定 820×660,与同系列其它工具一样的形态。右上角「右键菜单」按钮可以把「加密PDF..」装进资源管理器的「百业PDF大师」分组。
1. 先看清楚这份 PDF 现在是什么状态
选中文件后,工具立刻读一次加密状态,这一步不需要密码:未加密的报「未加密」,已加密的报出算法与密钥长度(RC4 / AES-128 / AES-256),需要口令却还没给的,界面写「已加密,页数与权限需密码后确认」,不会把读不到的权限位当成「全禁止」摆出来。文件名、大小、页数一并给出;这一步用的是引擎的结构化查询,不是靠界面猜。

6 页样本:状态行写明「未加密」,算法默认选中 AES-256,三项权限默认全部禁止(要哪项勾哪项),输出路径自动填成同目录的 _已加密.pdf;底部常驻一句「文件内容全程本机处理,不上传服务器」。
2. 加密:两个密码、三项权限、两档算法
- 打开密码(用户密码):别人打开文件时要输的那个,可以留空——留空就是「谁都能打开」
- 权限密码(属主密码):改权限、脱密时用的那个,留空则自动沿用打开密码(避免写出「两个密码都空」这种看似加密实则形同虚设的组合)
- 两个密码都空 → 直接拒绝并提示「请至少填写一个密码」;打开密码空、权限密码非空 → 合法,就是「免密打开 + 权限受限」
- 三项权限:允许打印 / 允许复制文字和图片 / 允许修改内容(修改这一项会同时把注释、填表单、页面组装三个能力位一起写,避免不同阅读器各按各的理解显示);默认全禁,勾了才放开
- 两档算法:AES-256(默认)与 AES-128(给还在用老阅读器的收件人);不提供 RC4 创建——现在写一个 RC4 加密件给用户,等于交付一个会被阅读器警告的文件
- 密码支持中文、空格、符号(不允许换行),可以点「显示」核对再切回密文

这条路径专门为「发出去能看、不许打印不许复制」准备:打开密码留空、只填权限密码,处理前会弹一次二次确认,免得你以为文件上了锁、其实谁都能打开。成品回读的能力位确实是打印禁止、复制禁止、修改禁止。
3. 解密:只移除你知道密码的加密
切到「解密」,输入当前密码——打开密码或权限密码都可以——产出无密码的 PDF,权限限制一并去掉。密码不对时给一句明确中文提示(「密码不正确。请输入该 PDF 的打开密码或权限密码」),不静默失败、不落半个文件。本工具不提供任何破解、绕过或猜测试图:忘了密码的 PDF 在这里和在其他任何合规工具一样,处理不了。

结果行同时给输出路径、大小变化与页数核对(6 页 → 6 页)。源加密文件保持原样,仍是加密状态——脱密产出的是另一份新文件。
4. 产出与核对:大小变化、页数、覆盖确认
- 输出默认落在源文件同目录,名为
<源文件名>_已加密.pdf/<源文件名>_已解密.pdf,也可以「浏览…」另选位置 - 输出与源文件相同 → 直接拒绝,不给「差点把原件覆盖了」留机会
- 目标已存在 → 先弹确认;确认后才替换,取消则目标文件的字节与修改时间分毫不差
- 处理期间是跑马灯进度(引擎子进程不回报百分比,不拿假进度条骗人);完成后报输出路径、大小变化、页数核对,可勾「完成后打开所在目录」
- 失败自动清理临时文件,不留下半成品

这一张是把成品再读一次的结果:算法 AESv3(R=6)、打印允许、复制与修改禁止,与界面上勾的三项完全对上——「不是我说加密了,而是回读得到」。
5. 资源管理器右键与多文件
点工具栏「右键菜单」把「加密PDF..」装进「百业PDF大师」分组后,对着 PDF 点右键就能带着文件直接开一个窗口,省掉一次对话框。本工具一次处理一个 PDF,所以在资源管理器里多选几个文件时,是每份各起一扇窗、各自预载,不是把多份糊进同一扇窗——因为加密这件事每份的密码与权限都可能不同。再点一次按钮选移除就清干净,不影响同系列其它工具。
技术实现
Windows 桌面程序,.NET Framework 4.8 + WinForms 界面(AntdUI 风格);加解密引擎用开源的 qpdf 12.4.2(Apache-2.0 许可,随包带它的可执行文件与原生库,许可声明同目录一起给),由程序在本机拉起子进程完成实际运算。没有用 PdfSharp 或 iTextSharp 做加密——这是选型阶段反射验证过的:PdfSharp 1.50.5147 的安全等级只有 Encrypted40Bit / Encrypted128Bit 两档,写不出 AES;用它去读一份 AES-256 的文件,无论带不带正确密码都只会抛 The PDF document is protected with an encryption not supported by PDFsharp。2026 年给用户一个只会 RC4 的加密工具没有意义,所以引擎换成了 qpdf。
- 密码不进进程命令行。所有参数(含两个密码、源文件口令)都写进一份临时参数文件,引擎按
@文件读取;实测参数文件里的空格、中文、@、#、引号、%都逐行原样生效,不会被二次解释。任务管理器、命令历史、审计日志里都看不到口令。临时目录是随机名(%TEMP%\by.pdf.encrypt_<guid>),成功、失败、异常三条路都会删掉,自检里有专门一条断言「操作完成后临时目录不存在、无残留参数文件」。 - 只看退出码,不解析英文报错。引擎返回 0 是成功,3 是「成功但结构有轻微问题、输出已写好」,2 才是失败;界面把 3 处理成「已完成 + 一句中文警告」,把 2 处理成失败并清理临时输出。需要读结构时用引擎的结构化查询(加密状态、页数、能力位),不从人类可读的英文文本里抠判断。
- 权限位是成套写的。「允许修改」同时写 modify / annotate / form / assemble 四个能力位,「允许打印」只有 full 与 none 两档,「允许复制」对应 extract 位;可访问性提取位由引擎固定允许(给读屏软件用的,不该也不提供一个把它关掉的选项)。成品会用引擎回读一遍能力位,勾的和写进文件的必须一致。
- 先写临时输出、校验、再落到目标。覆盖走同卷原子替换,中途失败不会把目标文件留成半截;输入与输出同名在界面层就拒掉,源文件从头到尾只被读、不被写。
- 往返保真不是口头承诺。一份 6 页、带 4 个书签、2 个附件、7 个表单字段、XMP 与文档属性都齐全、标题是中文的样片,加密(11,916 → 15,900 字节)再解密(→ 11,938 字节)之后:页数、书签数、附件数、表单字段数逐项一致,文档属性逐字段一致,XMP 流 1,000 字节逐字节相同,再用 100 DPI 把 6 页渲染成位图做逐页像素对拍——源文件与解密成品完全一样;引擎的结构检查对加密与解密两种输出都报「没有语法与流编码错误」。
- 大文件实测。150 MB / 1 页的 PDF 做 AES-256 加密耗时 9.7 秒,成品仍是 150 MB、回读算法与页数正确;信息状态读取是即时的。另一份 155 MB、40 页、装满重复未压缩流的合成件,加密 1.01 秒、输出 172 KB——这是引擎顺手重新压缩流的结果,不代表扫描件也会变小,所以下面 FAQ 里按「可能变大也可能变小」如实写。
操作教程
- 第 1 步:把 PDF 放进软件:三种入口:点「选择PDF」用文件对话框选;把文件从资源管理器直接拖进窗口;或者在资源管理器里对着 PDF 点右键,选「百业PDF大师 → 加密PDF..」(第一次用需要在软件里点一下「右键菜单」按钮把它装上)。一次一份,多选就是每份各开一扇窗 预期:界面出现文件名、大小、页数与加密状态行;非 PDF、0 字节、已移走的文件各有中文原因,不会一闪而过也不会闪退;已加密的文件会标明算法,并提示页数与权限需要密码后确认
- 第 2 步:选「加密」,填两个密码:打开密码是别人阅读时要输的(留空 = 谁都能打开);权限密码是改权限、脱密时用的,留空就自动沿用打开密码。两个都空会被拒绝。想核对一下再走,点「显示」看一眼,再切回密文。算法默认 AES-256,收件人还在用很老的阅读器时选 AES-128 预期:免密打开 + 只填权限密码是合法组合,但处理前会弹一次二次确认,免得你以为上了锁其实谁都能打开;密码支持中文、空格与符号,换行不允许
- 第 3 步:勾要放开的权限:允许打印 / 允许复制文字和图片 / 允许修改内容(含注释、表单、页面组装)三项,默认全部禁止,需要放开哪一项就勾哪一项,然后点「开始处理」 预期:跑马灯 + 「正在处理...」;完成后报输出路径、大小变化、页数核对结果。处理期间不要移走源文件;如果目标文件已存在,会先问你要不要覆盖
- 第 4 步:要脱密就切「解密」:把已加密的 PDF 放进来,操作切到「解密」,输入当前密码(打开密码或权限密码都行),点「开始处理」得到无密码的新 PDF,权限限制一并去掉。如果你选的文件本来没加密,点解密会先确认一句——因为那一步仍然会重写文件结构 预期:密码错误弹独立提示框,明确说「请输入该 PDF 的打开密码或权限密码」,并且不落下任何输出文件;成功后回读为「未加密」,页数与源文件一致
- 第 5 步:核对成品,再决定发不发:把成品用你自己的阅读器打开一次:验密码对不对、能不能打印、能不能复制文字、书签和表单还在不在。要留证据的话,再拿信息查看类工具读一遍它的加密与权限报告 预期:阅读器的行为与勾选项一致;本系列另有 PDF合并大师、PDF拆分器、PDF旋转工具、PDF删页工具、PDF提取页面、PDF页面重排、PDF裁剪工具、PDF页面缩放、PDF多页拼版、PDF水印专家、PDF页码页眉页脚、PDF元数据编辑器 和 PDF信息查看器,其中信息查看器能只读地把成品的加密状态与权限摊出来核对

先看清楚这份文件现在有没有加密,再决定是加密还是解密——这一步不需要密码,也不会动文件

成品再读一次:AESv3、能力位与勾选一致、页数不变。勾选结果不是界面上一句提示,而是真写进了文件里

错误分支是单独弹出来的提示框,不会只在状态栏留一行灰字,也不会写出半个文件。本工具不做任何破解或绕过——忘了密码的件它和别的合规工具一样处理不了

脱密产出的是另一份文件,源加密件保持原样——先核对新文件能正常打开,再决定怎么处置原件
第一次用想开右键菜单,点工具栏「右键菜单」按钮即可装上,再点一次选移除就清干净,且不影响同系列其它工具;移动了软件所在的文件夹后,在新位置再点一次按钮刷新路径。需要提醒的是加密与页面处理是两件事:本站的合并、拆分、裁剪、水印等工具产出的是未加密文件,把加密放在流程最后一步做;已经加密的文件要先用本工具脱密,才能被那些工具正常处理。
常见问题
软件截图

状态行、算法选择、两个密码框与三项权限在一屏里;底部常驻「文件内容全程本机处理,不上传服务器」

打开密码留空、只设权限密码,配合二次确认,专门服务「发出去能看、不许打印不许复制」这个场景

输出路径、大小变化、页数核对一并给出;成品回读 AESv3 与能力位

独立提示框说清「请输入打开密码或权限密码」,不落任何输出文件

加密移除、权限限制解除,源加密文件保持原样
技术实现与后续维护
程序集 by.pdf.encrypt,主程序是单文件:托管依赖(界面库、授权组件等)全部合并/嵌入进 exe(3.0 MB)。但加密引擎是原生程序,原生文件没法被合并进托管 exe,只能与主程序同目录随包,所以发布包是 13 个文件、解压后 6.0 MB:by.pdf.encrypt.exe + 一份空的 cfg.ini(首次启动由框架自己写运行状态)+ 引擎本体与它的原生库 + 8 个 VC 运行库文件 + 一份第三方组件与许可声明。少任何一件,界面会给「加密组件缺失,请重新解压完整的发布包」而不是崩给你看。运行环境是 .NET Framework 4.8,Windows 10/11 一般已经具备。
出厂前开发版与混淆发布版各跑了一样的验收:服务层自检 103 条断言、0 失败(组件定位与版本、状态识别五种分支、截断件修复、AES-256/128、权限矩阵、免密打开 + 权限密码、权限密码缺省沿用、两种口令各自解密、错密码、中文路径与中文/空格/符号密码、输出=源文件、0 字节、非 PDF、覆盖开关、6 页样片的结构往返保真、临时参数文件与临时输出清理、右键菜单注册/读回/注销与兄弟动词保护);界面端到端 5 条流程(AES-256 加密回读、解密对/错口令、免密 + 权限、AES-128、覆盖确认与取消),另加真实资源管理器多选两文件开两窗并各自预载正确的右键端到端。发布版在只放解压内容的干净目录里重跑了一遍自检与界面端到端,证明不依赖开发环境、也不旁加载任何 dll。
混淆采用 SmartAssembly 8:18 个类型全部改名,残留可读名字的只剩注入属性与Properties.Settings(继承框架设置基类,属工具链的设计行为);入口点已抹平,sn -vf 验签有效,ildasm 打开会回「受保护的模块 -- 无法进行反汇编」。一处值得记下来的坑:混淆会把清单里嵌入资源的名字换成 GUID,但按原始名取流仍然成立——程序图标与自检内置的样片都靠按名取流,所以代码里必须按原始名取,改成「枚举名字再挑后缀」在发布版上必然取不到。本文所有截图与封面都是用混淆后的发布版实拍,发布包内的 exe SHA256 与混淆产物逐字节一致。
后续可扩展的方向:按目录批量加密与按规则命名、把权限组合做成模板(例如「报价单:可打印、禁复制、禁改」一键套用)、加密后再顺带走一遍元数据收口、支持一份文件同时输出「收件人各用不同口令」的多副本、把处理结果写成一份留档清单。这些都能挂在现有「读状态 → 组参数 → 引擎执行 → 回读核对 → 原子落盘」的结构上,不需要改界面骨架。
已知的边界(不藏着)
本工具不提供任何破解、绕过或猜测试图,只能移除你已知密码的加密;密码遗失无从找回,请务必另行保管。不承诺等体积:加密会重写结构并重新压缩流,小文件一般变大、含大量重复或未压缩流的文件可能大幅缩小,成功提示里会把变化量如实写出来。加密与解密都会让原有数字签名失效,这是 PDF 的规则。不提供 RC4 创建(只读侧兼容旧件);「允许打印」只有允许/禁止两档,没有低分辨率打印档;可访问性提取位固定允许,不提供开关。权限限制是写进文件的约束,界面上勾了什么、成品里就写着什么(回读核对过),但它约束的是按规范行事的阅读器,本工具不承诺它在任何软件里都被强制执行。一扇窗处理一个文件,多选是每份各起一扇窗,不做「一套密码糊全部」。引擎明确拒绝的坏件(0 字节、文件头与正文对不上、假称 AES 的结构异常件、那种增量更新件)会如实失败,不做「勉强产出一个可能打不开的件」。全新机器上第一次同时开多个窗口,可能出现一个窗口提示未激活(试用状态首次落盘的争用),先单独打开一次软件再多选即可。本系列定宽窗体在 200% 缩放的小屏上底部可能落到屏幕外,100% 缩放按设计尺寸打开。这些边界在界面提示、结果文案与本文里用的是同一套措辞。
可以定制(二次开发)
这个工具按「一个痛点一个小工具」的思路做,界面和规则都可以按你的实际流程改:比如按目录批量加密并按「部门_日期_序号」命名、把常用权限组合做成模板一键套用、同一份源文件输出多副本且每份用不同口令、加密后再接一道元数据收口、把每批处理结果写成留档清单(文件名、算法、能力位、前后大小、耗时)供审计,或者对接你们自己的密码保管与审批流程。也能和同系列的合并/拆分/裁剪/水印/元数据/信息查看工具串成一条流水:页面处理在前、加密在最后,成品再用信息查看器只读核对一次。需要改动的联系方式见站内「联系我们」页面的 QQ 客服,也可以在本文下方留言说明场景。定制合作会连同可编译的工程一起交付。
使用说明与免责声明
请只对你拥有合法权利、且有权设置访问控制的 PDF 使用本工具。加密与权限设置是文件级别的访问控制,不构成取证、保密协议或合规证明:它约束的是按规范行事的阅读器,不能阻止有人用其他方式处理一份他能打开的文件,也不能证明文件未被截屏或翻拍。请把它当作「按规范限制访问与复制」的手段,而不是替代保密流程的方案。本工具不改动源文件,但加密是不可逆的操作之一——密码一旦遗失无法找回,重要文件请务必保留原件与密码记录。对因使用本工具作出的判断或造成的损失,作者不承担责任。本工具按「现状」免费提供,内置 365 天全功能试用。
fxjd 打开下载页后,在「输入密码」框里填这 4 位,再点它下方的按钮即可下载,不用注册、不用登录。
