在 C# 中加密和解密 PDF

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 文檔的簡單步驟。

以下代碼示例顯示瞭如何使用 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文檔時,會彈出如下對話框。

加密的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 文檔的安全性。在這種情況下,您可以指定允許用戶執行的操作。以下是您可以為用戶設置的權限列表。

  • 打印文檔 - 允許打印文檔。
  • 修改內容 - 允許修改文檔的內容。
  • 提取內容 - 允許從文檔中復制內容。
  • 修改文本註釋 - 允許添加或修改文本註釋。
  • 填寫表格 - 允許填寫交互式表格字段。
  • Extract Content with Disabilities - 允許提取文本和圖形(針對殘障用戶)。
  • 組合文檔 - 允許插入、旋轉或刪除頁面並創建書籤或縮略圖。
  • 打印質量 - 允許以高分辨率打印文檔。

更改 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 文檔的安全詳細信息。

更改了 PDF 的安全權限

結論

在本文中,您已經完成了使用 C# 加密和解密 PDF 文檔的步驟。此外,您還學習瞭如何在 C# 中設置或修改 PDF 文檔的安全權限。這些安全功能讓您可以使用密碼和加密算法保護敏感的 PDF 文檔,並限制用戶訪問文檔的相關操作。您可以查閱 文檔 以了解有關我們的 .NET PDF 庫的更多信息。

也可以看看