Mã hóa và giải mã PDF trong C#

Mã hóa PDF được sử dụng để bảo mật tài liệu PDF khỏi bị truy cập trái phép. Nếu một tài liệu PDF được mã hóa, bạn phải giải mã nó để truy cập nội dung của nó, nếu không, nó sẽ không thể đọc được. Thông thường, các tài liệu PDF được mã hóa bằng mật khẩu cần thiết để mở tài liệu. Mặt khác, bạn cũng có thể giới hạn quyền truy cập đối với các thao tác khác nhau như in, chỉnh sửa, sao chép, v.v. Thư viện PDF của Aspose, Aspose.PDF for .NET, cung cấp một số cách đơn giản để mã hóa và giải mã Các tệp PDF bằng C# và VB.NET. Trong bài viết này, tôi sẽ chỉ cho bạn cách thực hiện các thao tác mã hóa và giải mã PDF bằng C#.

API mã hóa và giải mã PDF C# - Cài đặt

Aspose.PDF for .NET được lưu trữ trên NuGet và có thể dễ dàng cài đặt bằng Trình quản lý gói NuGet. Ngoài ra, bạn có thể tải xuống DLL của API từ phần Tải xuống.

Mã hóa tệp PDF trong C#

Để mã hóa tệp PDF, bạn cần đặt mật khẩu sẽ được yêu cầu để mở và xem tài liệu. Ngoài ra, bạn phải chỉ định thuật toán mã hóa mong muốn làm phương pháp mã hóa. Aspose.PDF for .NET hỗ trợ các phương thức mã hóa sau:

  • RC4 với khóa 40 bit.
  • RC4 với khóa 128 bit.
  • AES với khóa 128 bit.
  • AES với khóa 256 bit.

Các bước để mã hóa tệp PDF

Sau đây là các bước đơn giản để mã hóa tài liệu PDF bằng C#.

  • Tải tài liệu PDF bằng lớp Document.
  • Mã hóa tài liệu PDF bằng mật khẩu và thuật toán mã hóa bằng phương pháp Document.Encrypt.
  • Lưu tài liệu PDF đã mã hóa bằng phương pháp Document.Save.

Mẫu mã sau đây cho biết cách mã hóa tài liệu PDF bằng C#.

// mở tài liệu
Document document = new Document("Encrypt.pdf");
// Mã hóa PDF  
document.Encrypt("user_password", "owner_password", 0 /*permissions*/, CryptoAlgorithm.RC4x128);
// Lưu bản PDF đã cập nhật
document.Save("Encrypted PDF.pdf");

Khi bạn mở tài liệu PDF được mã hóa này trong Adobe Reader, hộp thoại sau sẽ xuất hiện.

tài liệu PDF được mã hóa

Giải mã tệp PDF bằng C#

Để giải mã tài liệu PDF, bạn phải có mật khẩu người dùng hoặc chủ sở hữu của tài liệu. Sau đây là các bước đơn giản để giải mã tài liệu PDF:

  • Tải tài liệu PDF bằng lớp Document bằng cách chỉ định mật khẩu của người dùng hoặc chủ sở hữu.
  • Gọi phương thức Document.Decrypt().
  • Lưu tài liệu PDF đã giải mã.

Mẫu mã sau đây cho biết cách giải mã tài liệu PDF bằng C#.

// Mở tài liệu bằng cách chỉ định mật khẩu của người dùng hoặc chủ sở hữu
Document document = new Document("Encrypted PDF.pdf", "user_password");
// Giải mã PDF  
document.Decrypt();
// Lưu bản PDF đã cập nhật
document.Save("Decrypted PDF.pdf");

Thay đổi quyền bảo mật của tệp PDF trong C#

Bạn có thể nâng cao tính bảo mật của tài liệu PDF bằng cách giới hạn quyền của người dùng. Trong trường hợp như vậy, bạn có thể chỉ định các thao tác được phép cho người dùng. Sau đây là danh sách các quyền mà bạn có thể đặt để cho phép người dùng.

  • Print Document - Cho phép in tài liệu.
  • Modify Content - Cho phép sửa đổi nội dung của tài liệu.
  • Trích xuất nội dung - Cho phép sao chép nội dung từ tài liệu.
  • Sửa đổi chú thích văn bản - Cho phép thêm hoặc sửa đổi chú thích văn bản.
  • Điền biểu mẫu - Cho phép điền vào các trường biểu mẫu tương tác.
  • Trích xuất nội dung dành cho người khuyết tật - Cho phép trích xuất văn bản và đồ họa (dành cho người dùng khuyết tật).
  • Tập hợp tài liệu - Cho phép chèn, xoay hoặc xóa trang và tạo dấu trang hoặc hình ảnh thu nhỏ.
  • Chất lượng in - Cho phép in tài liệu với độ phân giải cao.

Các bước để thay đổi quyền bảo mật của tệp PDF

Sau đây là các bước để thay đổi quyền bảo mật của tài liệu PDF.

  • Tải tài liệu PDF.
  • Đặt quyền bảo mật bằng phương pháp Document.Encrypt.
  • Lưu tài liệu PDF được mã hóa.

Mẫu mã sau đây cho biết cách thay đổi quyền của tài liệu PDF bằng C#.

// mở tài liệu
Document document = new Document("Encrypt.pdf");
// Mã hóa PDF với quyền in
document.Encrypt("user_password", "owner_password", Permissions.PrintDocument | Permissions.PrintingQuality, CryptoAlgorithm.RC4x128);
// Lưu bản PDF đã cập nhật
document.Save("Encrypted PDF.pdf");

Một cách khác để đặt hoặc sửa đổi các đặc quyền của tài liệu PDF là sử dụng lớp DocumentPrivilege. Lớp DocumentPrivilege cho phép bạn xác định quyền hoặc đặc quyền cho người dùng. Mẫu mã sau đây cho biết cách đặt quyền bảo mật của tài liệu PDF bằng cách sử dụng lớp DocumentPrivilege trong C#.

// mở tài liệu
Document document = new Document("Encrypt.pdf");
// Áp dụng các hạn chế đối với tất cả các đặc quyền
DocumentPrivilege privileges = DocumentPrivilege.ForbidAll;
// Cho phép đặc quyền mong muốn
privileges.AllowScreenReaders = true;
privileges.AllowPrint = true;
// Mã hóa PDF
document.Encrypt("user_password", "owner_password", privileges, CryptoAlgorithm.RC4x128, false);
// Lưu bản PDF đã cập nhật
document.Save("Encrypted PDF.pdf");

Sau đây là các chi tiết bảo mật của tài liệu PDF mà chúng tôi đã mã hóa trong phần này.

đã thay đổi quyền bảo mật của PDF

Sự kết luận

Trong bài viết này, bạn đã trải qua các bước về cách mã hóa và giải mã tài liệu PDF bằng C#. Hơn nữa, bạn cũng đã học cách đặt hoặc sửa đổi các quyền bảo mật của tài liệu PDF trong C#. Các tính năng bảo mật này cho phép bạn bảo vệ các tài liệu PDF nhạy cảm bằng cách sử dụng mật khẩu và thuật toán mật mã cũng như hạn chế quyền truy cập của người dùng vào các hoạt động liên quan đến tài liệu. Bạn có thể tham khảo tài liệu để tìm hiểu thêm về Thư viện PDF .NET của chúng tôi.

Xem thêm