用c#加密PDF文档

本文关键字:文档 PDF 加密 | 更新日期: 2023-09-27 18:06:41

是否可以用对称加密加密PDF的内容?acrobat等是否支持自动解密?

我需要c#/.net中的API来加密文件的内容!

方面迈克尔。

用c#加密PDF文档

Atalasoft PDF库(dotImage的一部分)可以为您处理PDF文档的加密或解密(免责声明,我为Atalasoft工作并编写了库)。代码非常简单:

public void EncryptPdf(Stream input, Stream output, string userPassword, string ownerPassword)
{
    if (input == output) throw new ArgumentExeption("input", "input and output must be different");
    PdfDocument doc = new PdfDocument(input);
    // at this point if you set doc.Permissions, you can fine-control what can be
    // done to the document.  If userPassword is null, then the document can be opened
    // without a password prompt, but will be restricted to the permissions.
    // Permissions includes things like Printing, Modifying, Copying Text etc.
    doc.Save(userPassword, ownerPassword, output);
}

docictic . PDF库可以为您加密或解密PDF文件。

PDF参考定义了两种标准的加密算法:RC4和AES。两种算法都是对称的。RC4使用40到128位长度的密钥。AES使用128位密钥(256位密钥将很快成为新的标准)。

加密的pdf文件可以完全锁定(您和其他任何人都无法在没有密码的情况下打开它们)或只是"受保护"。从修改(任何人都可以打开他们没有任何密码和良好的观众不会允许更改他们)。

请看一下如何使用AES 128位加密PDF文档的示例。

免责声明:我为Bit Miracle工作,库的供应商。

您不希望手动执行此类操作,而希望使用PDF库。

我不知道是否有那些支持原生/Adobe PDF加密的,但是你可以看看其中的一些并检查它们的功能。

是的,使用证书。

http://help.adobe.com/en_US/Acrobat/9.0/Standard/WS58a04a822e3e50102bd615109794195ff-7d6c.w.html

如果你已经购买了一个功能齐全的Acrobat版本,你可以使用它的JavaScript接口来为你做这项工作(尽管它本身看起来很费力)

似乎iTextSharp可以在没有证书的情况下做到这一点,并且是开源的,所以可能是一个不错的选择。他们当然会把他们的书作为一个很好的资源来展示。这是我看的第一个第三方库,其他供应商可能会提供这些功能。

然而,如果你想自动化这个过程,你不想付钱给Adobe或其他第三方,我希望有人能提供一个更完整的答案。

这是PDF文件格式定义的链接。