密码保护文件如何工作?

时间:2014-03-31 05:47:56

标签: pdf passwords cryptography

我正在寻找黑莓应用程序世界中的应用程序来创建pdf文件,该应用程序声称能够使用密码保护文件。一个密码如何保护文件。是不是可以读取文件的代码,因此如果程序决定不检查密码,密码将无用?

3 个答案:

答案 0 :(得分:2)

除了其他答案(专注于任意文件的加密)之外,这里的答案主要集中在PDF的加密上,这是用例最初令OP震惊:

PDF标准(ISO 32000-1)在7.6节中描述了如何在隐藏内容的同时保持PDF文件结构的方式加密PDF。 PDF是由许多对象(数字,字符串,数组,字典,流,引用......)构建的,规范描述的机制基本上只加密字符串和流内容。

就像所描述的一般情况一样,例如通过@Mark,这些加密的字符串和流内容只是一堆随机数据并且必须在显示PDF之前解密,但其余的对象是未加密的,允许PDF查看者和编辑者将文件识别为PDF。

此外,PDF规范允许两种基本加密类型,按

  • 一个用户密码,任何人都必须输入谁想以任何方式使用PDF,
  • 所有者密码,只需输入PDF的一组可配置用途(例如打印或编辑),但不能仅用于查看。

使用后一种密码的加密显然可以避免:毕竟,如果你可以查看PDF,你可以提取所有数据并基本上做你想要的,除非你的软件与该方案合作并禁止你至。显然,并非所有软件都能合作。

基本上,所有者密码机制在从密码派生的PDF中存储一个值,该值足以解密加密数据,但不允许轻松计算原始密码。

答案 1 :(得分:0)

如果操作正确,将使用需要原始密码的算法对受密码保护的文件进行加密,以撤消加密。密码用于初始化加密/解密过程,不存储在文件中。如果您输入了错误的密码,解密将无法正常工作,程序无法知道正确的解密密钥(除了进行强力攻击)。

答案 2 :(得分:0)

假设应用程序写得很好,使用密码加密.pdf文件以获取加密密钥 - 也就是说,正确地说,文件不是.pdf文件,直到它被解密。在此之前,该文件只是一堆随机数据,在您输入密码之前,程序不知道解密密钥是什么。