如何验证用于解密文件的密码?

时间:2018-08-13 21:50:12

标签: security pdf encryption hash passwords

假设我有一个受密码保护的PDF文件mypdf.pdf,其密码为'1234'。当我在PDF阅读器中输入密码进行解密时,软件如何知道我输入了正确的密码?

我的理解是,当我输入密码时,将使用输入的密码作为密钥对PDF文件中的所有字节执行操作。因此,即使输入错误密码,数据也仍会使用错误的密钥进行转换。

我的问题是,该软件如何区分输入正确密码所导致的数据和错误密码所导致的数据。

1 个答案:

答案 0 :(得分:1)

除非通过认证算法,否则不会解密PDF文档的内容。

这些算法在PDF 32000-1:2008-7.6.3.4密码算法中定义。

简单来说:创建加密的PDF时,用户和所有者密码用于计算保存在PDF文件本身中的静态值(O,U,OE和UE)。身份验证是一个“简单”的过程,通过给定的密码重新创建这些值并将它们与PDF文件中的静态值进行比较。