C#, VB.NET如何加密PDF文档

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 在日常工作中,人们通常通过加密PDF文档的方式来保护PDF文档。不管是公司还是个人,使用PDF加密术来设置一些权限是必不可少的。为了使PDF文档既可读又不能被未授权的用户所更改,一份PDF文档往往需要两个密码:所有者密码和用户密码。

 

在日常工作中,人们通常通过加密PDF文档的方式来保护PDF文档。不管是公司还是个人,使用PDF加密术来设置一些权限是必不可少的。为了使PDF文档既可读又不能被未授权的用户所更改,一份PDF文档往往需要两个密码:所有者密码和用户密码。本文我将给大家分享如何使用一个免费版PDF组件—Free Spire.PDF,以C#/VB.NET编程的方式来快速地加密PDF文档。

这个免费版的PDF组件是由E-iceblue公司开发的,它可以通过设置所有者密码和用户密码来加密PDF文档。所有者密码可以完全访问PDF文档,例如重置密码和权限;用户密码虽然可以允许用户打开对应的PDF文档,但也会受制于所有者设置的一些权限。

在加密方案中,命名空间Spire.PDFDocument.Security下的PDFSecurity类的实例对象用来设置所有者密码和用户密码。

如果您对该组件感兴趣,可以从官网下载,组件下载安装后,再加载您的PDF文档,然后就可以保护它了。

 

接下来我将介绍如何以C#/VB.NET编程的方式来加密PDF文档:

步骤1:新建一个PDF文档对象(因为我没有现有的PDF文档,所以就新建了一个)

[C#]

      PdfDocument doc = new PdfDocument();

 

步骤2:通过“Spire.Pdf.Security.PdfEncryptionKeySize”的枚举值来设置密钥长度。密钥长度有3种可用的类型:Key128Bit, Key256Bit 和 Key40Bit,您可以使用其中的任意一种。

[C#]

       doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit;

 

步骤3:通过设置所有者密码和用户密码来加密PDF文档。注意:您所设置的密钥长度不能超过可用的密钥长度。

[C#]

       doc.Security.OwnerPassword = "e-iceblue";
       doc.Security.UserPassword = "pdfcomponent";

 


步骤4:指定用户密码的访问权限。在此方案中,有9种可用的权限,请查看下图:

                                    

[C#]

       doc.Security.Permissions = PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent;

 

步骤5:保存文档

[C#]

      doc.SaveToFile("result.pdf",FileFormat.PDF);


项目运行后,当你打开这个加密的PDF文档时就需要输入密码了。请看下面的效果截图:

 

   

 

C#完整代码:

using Spire.Pdf;
using Spire.Pdf.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace __encryption
{
    class Program
    {
        static void Main(string[] args)
        {
           PdfDocument doc = new PdfDocument();
           doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit;
           doc.Security.OwnerPassword = "e-iceblue";
           doc.Security.UserPassword = "pdfcomponent";
           doc.Security.Permissions = PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent;
           doc.SaveToFile("result.pdf", FileFormat.PDF);
        }
    }
}

 

VB.NET完整代码:

Imports Spire.Pdf
Imports Spire.Pdf.Security
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Namespace __encryption
    Class Program
        Private Shared Sub Main(args As String())
            Dim doc As New PdfDocument()
            doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit
            doc.Security.OwnerPassword = "e-iceblue"
            doc.Security.UserPassword = "pdfcomponent"
            doc.Security.Permissions = PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent
            doc.SaveToFile("result.pdf", FileFormat.PDF)
        End Sub
    End Class
End Namespace


希望这篇文章能给您带来一定的帮助。感谢您的浏览。

目录
相关文章
|
4天前
|
XML C# 开发工具
C# 删除Word文档中的段落
【11月更文挑战第3天】本文介绍了两种方法来操作 Word 文档:一是使用 `Microsoft.Office.Interop.Word` 库,适用于 Windows 环境下操作 Word 文档,需引用相应库并在代码中引入命名空间;二是使用 Open XML SDK,适用于处理 .docx 格式的文档,通过引用 `DocumentFormat.OpenXml` 库实现。文中提供了示例代码,展示了如何打开、删除段落并保存文档。
|
26天前
|
存储 安全 算法
C#一分钟浅谈:数据加密与解密技术
【10月更文挑战第3天】在数字化时代,信息安全至关重要。数据加密作为保障信息不被未授权访问的有效手段,通过特定算法将明文转换为密文,确保即使数据被截获也难以解读。本文从基础概念入手,介绍C#中实现数据加密的方法,涵盖对称加密(如AES、DES)与非对称加密(如RSA),并通过具体示例代码演示如何使用`System.Security.Cryptography.Aes`类完成AES加密和解密过程。此外,还强调了密钥管理及安全策略的重要性。
37 4
|
30天前
|
IDE 开发工具 数据安全/隐私保护
如何对PDF的加密和破解?
PDF文档的加密与暴力破解加密文档
|
1月前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
|
3月前
|
Java C# 数据安全/隐私保护
如何 使 Java、C# md5 加密的值保持一致
如何 使 Java、C# md5 加密的值保持一致
37 0
|
4月前
|
存储 算法 数据安全/隐私保护
基于SHA-256的大文档加密模块设计与实现
基于SHA-256的大文档加密模块设计与实现
|
5月前
|
Java C# 数据安全/隐私保护
|
5月前
|
Java BI C#
技术笔记:SM4加密算法实现Java和C#相互加密解密
技术笔记:SM4加密算法实现Java和C#相互加密解密
81 0
|
6月前
|
XML 存储 C#
C# xml文档反序列化记事
本文介绍了使用XmlSerializer进行XML序列化和反序列化的关键点。包括:1) 以独占方式读取XML文件以避免并发问题;2) 当元素名与类型名不一致时,可通过`[XmlArrayItem]`指定元素名,或创建继承自原始类型的子类;3) 处理DateTime反序列化错误,通过中间字符串属性转换;4) 提到了常用C#特性如`[XmlRoot]`, `[XmlElement]`, `[XmlAttribute]`, `[XmlIgnore]`和`[XmlArrayItem]`的作用。
|
6月前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
270 5