关于C#:如何使用所有者密码而不使用用户密码解密PDF?

关于C#:如何使用所有者密码而不使用用户密码解密PDF?

How does one decrypt a PDF with an owner password, but no user password?

尽管Adobe可以提供PDF规范,但它并不是最容易阅读的文档。 PDF允许对文档进行加密,因此需要用户密码和/或所有者密码才能对文档执行各种操作(显示,打印等)。常见的用途是锁定PDF,以便最终用户无需输入任何密码即可阅读它,但是执行其他任何操作都需要输入密码。

我正在尝试解析以这种方式锁定的PDF(以获得与在任何阅读器中打开它们相同的特权)。使用空字符串作为用户密码不起作用,但是(规范的3.5.2节)似乎必须有一个用户密码才能为管理员密码创建哈希。

我想要的是对如何执行此操作的解释,或者是我可以读取的任何代码(理想情况下为Python,C或C,但是任何可读的代码都可以这样做),以便我可以理解自己的\\注定要做。最好是独立代码,而不是通读(例如)gsview源代码。


如果我没记错的话,有32个固定的填充字符串(?)字节可应用于任何密码。在计算加密密钥开始时,通过截断或添加一些填充字节,所有密码都必须为32个字节。

如果未设置用户密码,则只需填充字符串的所有32个字节,即使用32个填充字节作为计算加密密钥的起点。

我必须承认这已经有一段时间了,我确实记得PDF的加密部分绝对是一团糟,因为在几乎每个修订版中它都发生了显着变化,需要您应对很多处理所有PDF的案例。

祝你好运。


用于查看加密的PDF的GSview插件在这里。

如果这对您有用,则您可以查看源。


对于这种问题,

xpdf可能是一个很好的参考实现。我以前已经成功地使用它们来打开加密的pdf。


推荐阅读

    linux清除密码命令?

    linux清除密码命令?,密码,系统,状态,名称,位置,网络,管理,软件,工具,命令,lin

    linux锁屏密码命令?

    linux锁屏密码命令?,密码,系统,环境,图片,管理,信息,状态,名称,命令,用户,lin

    linux打开文档命令?

    linux打开文档命令?,密码,图片,系统,标准,命令,文件,终端,发行,信息,情况,Lin

    linux打命令输入密码?

    linux打命令输入密码?,密码,系统,状态,代码,管理,标的,位置,地址,名称,命令,L

    linux命令详细解密?

    linux命令详细解密?,系统,地址,工作,命令,基础,信息,状态,数字,口令,目录,Lin

    linux命令行更新密码?

    linux命令行更新密码?,密码,系统,名称,软件,信息,环境,命令,使用者,权限,用

    linux登录改密码命令?

    linux登录改密码命令?,密码,系统,名称,软件,状态,服务,信息,策略,环境,命令,

    删除密码命令linux?

    删除密码命令linux?,密码,系统,管理,电脑,软件,百度,信息,名称,名字,命令,lin

    linux进入文档命令?

    linux进入文档命令?,工作,地址,图片,系统,标准,命令,信息,设备,一致,发行,Lin

    linux串口命令行密码?

    linux串口命令行密码?,密码,系统,状态,信息,标的,地址,用户名,终端,用户,命

    linux上传文档命令?

    linux上传文档命令?,服务,工具,密码,系统,软件,工作,电脑,综合,命令,文件,Lin

    linux中修改密码命令?

    linux中修改密码命令?,密码,系统,服务,名称,软件,信息,时间,状态,命令,用户,l

    linux如何命令建文档?

    linux如何命令建文档?,时间,名字,文件,系统,新增,命令,文件名,密码,工作,目

    linux命令打开文档?

    linux命令打开文档?,系统,软件,图片,电脑,一致,环境,名称,发行,中心,官方网

    linux剪切文档命令是?

    linux剪切文档命令是?,标准,系统,数据,文件,命令,地方,第一,位置,电子,名字,l

    linux锁定密码命令?

    linux锁定密码命令?,密码,系统,管理,信息,策略,状态,名称,软件,位置,环境,如

    linux看登录密码命令?

    linux看登录密码命令?,密码,系统,信息,地址,命令,用户,位置,设计,电脑,用户

    linux简单的文档命令?

    linux简单的文档命令?,系统,地址,标准,工作,命令,数据,管理,时间,信息,单位,l

    linux查询文档命令?

    linux查询文档命令?,工作,地址,标准,命令,管理,信息,文件,目录,内容,终端,lin