【问题标题】:Is this byte array a password-protected PDF document?这个字节数组是受密码保护的 PDF 文档吗?
【发布时间】:2011-08-08 16:19:06
【问题描述】:

我有一个 C# 字节数组,我需要知道它是否是受密码保护的 PDF 文档。我怎样才能做出这个决定?

我正在检查文档中的 PDF 魔术 cookie 以确定它是否是 PDF 文档,但在确定它是否受密码保护时,我不知道什么是最好的。

我不需要打开文档(不过,只要不需要 UI ——这是一个后台进程,如果有帮助我可以这样做)。

我只需要知道这个 PDF 文档是否有密码。

编辑:如果您引用 iTextSharp,如果您引用该 API 中解决此问题的特定资源,我将不胜感激。

【问题讨论】:

  • 这个问题很模糊...... PDF 上可能有两种类型的“密码”......用户和主......可能只有一个主密码......取决于“权限”设置可能是用户不需要密码,但例如不允许打印文档...那么您到底想在该字节流中找到什么?
  • 我想知道文档上是否有两种密码类型:用户或所有者(“主人”,正如您所说的那样)。

标签: c# pdf detection password-protection


【解决方案1】:

密码保护 PDF 有多种可能性,其中一些由 Adob​​e(“标准”)定义,作为标准的一部分,可以使用所谓的“备用安全处理程序”。

无论如何,基本上都可以通过检查 PDF 规范第 115-136 页所述的相应“字典”来检测 - 请参阅http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf

【讨论】:

  • 这不是简单的阅读,但它为我们提供了确定我们需要确定的内容所需的信息。
【解决方案2】:

Docotic.Pdf library 可用于执行此类检查。

库提供group of methods,可用于检查字节、流或文件是否包含受密码保护的 PDF 文档。

请查看显示how to check if an existing PDF document is password protected 的示例。

免责声明:我为公司工作。

【讨论】:

  • 很高兴您在这里插入了您的 API。这看起来比我们所做的更容易。
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 2010-09-27
相关资源
最近更新 更多