PDF 加密用于保护 PDF 文档免受未经授权的访问。如果 PDF 文档已加密,您必须对其进行解密才能访问其内容,否则将无法读取。大多数情况下,PDF 文档使用打开文档所需的密码进行加密。另一方面,您还可以将访问权限限制为打印、编辑、复制等各种操作。Aspose 的 PDF 库 Aspose.PDF for .NET 提供了一些简单的加密和解密方法使用 C# 和 VB.NET 的 PDF 文件。在本文中,我将向您展示如何使用 C# 执行 PDF 加密和解密操作。
C# PDF 加密和解密 API - 安装
Aspose.PDF for .NET 托管在 NuGet 上,可以使用 NuGet 包管理器轻松安装。或者,您可以从 下载 部分下载 API 的 DLL。
在 C# 中加密 PDF 文件
为了加密 PDF 文件,您需要设置打开和查看文档所需的密码。此外,您必须指定所需的加密算法作为加密方法。 Aspose.PDF for .NET 支持以下加密方法:
- 具有 40 位密钥的 RC4。
- 具有 128 位密钥的 RC4。
- 具有 128 位密钥的 AES。
- 具有 256 位密钥的 AES。
加密 PDF 文件的步骤
以下是使用 C# 加密 PDF 文档的简单步骤。
- 使用 Document 类加载 PDF 文档。
- 使用 Document.Encrypt 方法使用密码和加密算法加密 PDF 文档。
- 使用 Document.Save 方法保存加密的 PDF 文档。
以下代码示例展示了如何使用 C# 加密 PDF 文档。
// 打开文档
Document document = new Document("Encrypt.pdf");
// 加密 PDF
document.Encrypt("user_password", "owner_password", 0 /*permissions*/, CryptoAlgorithm.RC4x128);
// 保存更新的 PDF
document.Save("Encrypted PDF.pdf");
当您在 Adobe Reader 中打开此加密的 PDF 文档时,会弹出以下对话框。
使用 C# 解密 PDF 文件
要解密 PDF 文档,您必须拥有该文档的用户或所有者密码。以下是解密 PDF 文档的简单步骤:
- 通过指定用户或所有者的密码,使用 Document 类加载 PDF 文档。
- 调用 Document.Decrypt() 方法。
- 保存解密的 PDF 文档。
以下代码示例展示了如何使用 C# 解密 PDF 文档。
// 通过指定其用户或所有者的密码打开文档
Document document = new Document("Encrypted PDF.pdf", "user_password");
// 解密 PDF
document.Decrypt();
// 保存更新的 PDF
document.Save("Decrypted PDF.pdf");
在 C# 中更改 PDF 文件的安全权限
您可以通过限制用户的权限来增强 PDF 文档的安全性。在这种情况下,您可以指定允许用户执行的操作。以下是您可以设置为允许用户使用的权限列表。
- 打印文档 - 允许打印文档。
- 修改内容 - 允许修改文档的内容。
- 提取内容 - 允许从文档中复制内容。
- 修改文本注释 - 允许添加或修改文本注释。
- 填写表格 - 允许填写交互式表格字段。
- 提取残障内容 - 允许提取文本和图形(针对残障用户)。
- 组装文档 - 允许插入、旋转或删除页面并创建书签或缩略图。
- 打印质量 - 允许以高分辨率打印文档。
更改 PDF 文件的安全权限的步骤
以下是更改 PDF 文档的安全权限的步骤。
- 加载 PDF 文档。
- 使用 Document.Encrypt 方法设置安全权限。
- 保存加密的 PDF 文档。
以下代码示例展示了如何使用 C# 更改 PDF 文档的权限。
// 打开文档
Document document = new Document("Encrypt.pdf");
// 使用打印权限加密 PDF
document.Encrypt("user_password", "owner_password", Permissions.PrintDocument | Permissions.PrintingQuality, CryptoAlgorithm.RC4x128);
// 保存更新的 PDF
document.Save("Encrypted PDF.pdf");
另一种设置或修改 PDF 文档权限的方法是使用 DocumentPrivilege 类。 DocumentPrivilege 类允许您定义用户的权限或特权。以下代码示例展示了如何使用 C# 中的 DocumentPrivilege 类设置 PDF 文档的安全权限。
// 打开文档
Document document = new Document("Encrypt.pdf");
// 对所有权限应用限制
DocumentPrivilege privileges = DocumentPrivilege.ForbidAll;
// 允许所需的权限
privileges.AllowScreenReaders = true;
privileges.AllowPrint = true;
// 加密 PDF
document.Encrypt("user_password", "owner_password", privileges, CryptoAlgorithm.RC4x128, false);
// 保存更新的 PDF
document.Save("Encrypted PDF.pdf");
以下是我们在本节中加密的 PDF 文档的安全细节。
结论
在本文中,您已经完成了如何使用 C# 加密和解密 PDF 文档的步骤。此外,您还学习了如何在 C# 中设置或修改 PDF 文档的安全权限。这些安全功能让您可以使用密码和加密算法保护敏感的 PDF 文档,并限制用户对文档相关操作的访问。您可以查阅 文档 以了解有关我们的 .NET PDF 库的更多信息。