PDF控件Spire.PDF for .NET【安全】演示:将加密或解密 PDF 文件

当涉及到在 Internet 上共享机密文档时,PDF 加密是一项至关重要的任务。通过使用强密码加密 PDF 文件,您可以保护文件数据免遭未经授权的人员访问。在某些情况下,可能还需要删除密码才能公开文档。在本文中,您将了解如何使用Spire.PDF for .NET以编程方式加密或解密 PDF 文件。

Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。

E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式(qun:767755948 )

Spire.PDF for.net下载   Spire.PDF for java下载

安装适用于 .NET 的 Spire.PDF

首先,您需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过NuGet安装。

PM> Install-Package Spire.PDF
使用密码加密 PDF 文件

加密PDF文件有两种密码——打开密码权限密码。前者设置为打开 PDF 文件,而后者设置为限制打印、内容复制、注释等。如果 PDF 文件使用两种类型的密码保护,则可以使用任一密码打开它。

Spire.PDF for .NET 提供的PdfSecurity.Encrypt (string openPassword, stringpermissionPassword, PdfPermissionsFlags Permissions, PdfEncryptionKeySize keySize)方法允许您设置打开密码和权限密码来加密 PDF 文件。详细步骤如下。

  • 创建一个PdfDocument对象。
  • 使用PdfDocument.LoadFromFile()方法加载示例 PDF 文件。
  • 使用PdfDocument.Security属性获取文档的安全参数。
  • 使用PdfSecurity.Encrypt(string openPassword, stringpermissionPassword, PdfPermissionsFlags Permissions, PdfEncryptionKeySize keySize)方法使用打开密码和权限密码加密 PDF 文件。
  • 使用PdfDocument.SaveToFile()方法保存结果文件。

【C#】

using Spire.Pdf;
using Spire.Pdf.Security;

namespace EncryptPDF
{
class Program
{
static void Main(string[] args)
{
//Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

//Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");

//Encrypt the PDF file with password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);

//Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
}
}
}

【VB.NET】

mports Spire.Pdf
Imports Spire.Pdf.Security

Namespace EncryptPDF
Class Program
Private Shared Sub Main(ByVal args As String())

'Create a PdfDocument object
Dim pdf As PdfDocument = New PdfDocument()

'Load a sample PDF file
pdf.LoadFromFile("E:\Files\sample.pdf")

'Encrypt the PDF file with password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit)

'Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF)
End Sub
End Class
End Namespace

C#/VB.NET:加密或解密 PDF 文件

删除密码以解密 PDF 文件

当您需要删除PDF文件的密码时,可以在调用PdfSecurity.Encrypt(string openPassword, stringpermissionPassword, PdfPermissionsFlagspermissions, PdfEncryptionKeySize keySize, stringoriginalPermissionPassword)方法时将打开密码和权限密码设置为空。详细步骤如下。

  • 创建一个PdfDocument对象。
  • 使用PdfDocument.LoadFromFile(字符串文件名,字符串密码)方法加载带密码的加密 PDF 文件。
  • 使用PdfDocument.Security属性获取文档的安全参数。
  • 通过使用PdfSecurity.Encrypt(string openPassword, stringpermissionPassword, PdfPermissionsFlagspermissions, PdfEncryptionKeySize keySize, stringoriginalPermissionPassword)方法将打开密码和权限密码设置为空来解密 PDF 文件。
  • 使用PdfDocument.SaveToFile()方法保存结果文件。

【C#】

using Spire.Pdf;
using Spire.Pdf.Security;

namespace DecryptPDF
{
class Program
{
static void Main(string[] args)
{
//Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

//Load the encrypted PDF file with password
pdf.LoadFromFile("Encrypt.pdf", "open");

//Set the password as empty to decrypt PDF
pdf.Security.Encrypt(string.Empty, string.Empty, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "permission");

//Save the result file
pdf.SaveToFile("Decrypt.pdf", FileFormat.PDF);
}
}
}

【VB.NET】

Imports Spire.Pdf
Imports Spire.Pdf.Security

Namespace DecryptPDF
Class Program
Private Shared Sub Main(ByVal args As String())

'Create a PdfDocument object
Dim pdf As PdfDocument = New PdfDocument()

'Load the encrypted PDF file with password
pdf.LoadFromFile("Encrypt.pdf", "open")

'Set the password as empty to decrypt PDF
pdf.Security.Encrypt(String.Empty, String.Empty, PdfPermissionsFlags.[Default], PdfEncryptionKeySize.Key128Bit, "permission")

'Save the result file
pdf.SaveToFile("Decrypt.pdf", FileFormat.PDF)
End Sub
End Class
End Namespace

C#/VB.NET:加密或解密 PDF 文件

以上便是如何将加密或解密 PDF 文件,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/262062.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT一周年:开源语言大模型的冲击

自2022年末发布后,ChatGPT给人工智能的研究和商业领域带来了巨大变革。通过有监督微调和人类反馈的强化学习,模型可以回答人类问题,并在广泛的任务范围内遵循指令。在获得这一成功之后,人们对LLM的兴趣不断增加,新的LL…

mac电池最大充电限制 AlDente Pro中文 for Mac

热保护:在电池温度较高时为电池充电会导致电池老化更快。启用热保护后,当电池温度过高时,充电将自动停止。 航行模式:通常情况下,即使激活了最大电池充电,您的 MacBooks 电池也会始终稍微充电和放电以保持所…

linux 驱动——私有数据

文章目录 linux 驱动中的私有数据container_of驱动程序数据结构定义 应用程序模块使用 linux 驱动中的私有数据 前面的程序中,都只申请了一个从设备号,这里使用 alloc_chrdev_region 分配两个设备号,这两个设备共用 ops 方法。 所以需要在 …

案例101:基于微信小程序的停车共享小程序

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

基于Java+Springboot+Vue+elememt宠物用品商城系统设计实现

基于JavaSpringbootVueelememt宠物用品商城系统设计实现 🍅 作者主页 程序开发 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 文章目录 基于JavaSpringbootVueelememt宠物用品商城系统设计实…

CGAL的3D Alpha Shapes

假设我们给定一个二维或三维的点集S,我们希望得到类似“这些点形成的形状”的东西。这是一个相当模糊的概念,可能有许多可能的解释,阿尔法形状就是其中之一。阿尔法形状可用于从密集的无组织数据点集进行形状重建。事实上,阿尔法形…

跑马灯实验

4.1 实验目的 1.熟悉龙芯实验开发板、熟悉 VIVADO 的编译环境及操作流程。 2.掌握 FPGA 编程入门知识、利用门级方法实现简单逻辑电路。 3.继续学习 Verilog HDL 语法、掌握跑马灯的设计、熟悉调试过程。 4.2 实验原理及芯片 本次实验用 Verilog HDL 语言来描述 6 个不同的 …

【Spring Security】打造安全无忧的Web应用--进阶篇

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Spring Security的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.导入相关配置 1.pom 2.ym…

redis基本用法学习(C#调用NRedisStack操作redis)

redis官网文档中推荐C#中使用NRedisStack包连接并操作redis,本文学习C#调用NRedisStack操作redis的基本方式。   新建Winform项目,在Nuget包管理器中搜索并安装NRedisStack包,如下图所示: 主要调用StackExchange.Redis命名空间下…

Navicat里放大、缩小字体的快捷方法

我是偶然误触键盘把字体缩小了,研究以后发现的这个快捷键,分享给大家。 方法:按住【CtrlShift】组合键,再拖动鼠标滚轮,就可以缩放字体了。 缩小效果: 放大效果:

看懂PL/SQL执行计划

看懂PL/SQL执行计划 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二:怎样查看Oracle执行计划? 因为我一直用的PLSQL远程连接的公司数据库,所以这里以PLSQL为例&#xff1…

第4章Netty第二节入门案例+channel,future,promise介绍

需求 开发一个简单的服务器端和客户端 客户端向服务器端发送 hello, world服务器仅接收&#xff0c;不返回 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.39.Final</version> </d…

TrustZone之可信操作系统

有许多可信内核&#xff0c;包括商业和开源的。一个例子是OP-TEE&#xff0c;最初由ST-Ericsson开发&#xff0c;但现在是由Linaro托管的开源项目。OP-TEE提供了一个功能齐全的可信执行环境&#xff0c;您可以在OP-TEE项目网站上找到详细的描述。 OP-TEE的结构如下图所示&…

通杀无限 debugger,目前只有 1% 的人知道!

前言 相信很多小伙伴在进行 web 逆向的时候&#xff0c;都遇到过无限 debugger。最简单的方法&#xff0c;在 debugger 位置&#xff0c;点击行号&#xff0c;右键 Never pause here&#xff0c;永远不在此处断下即可。但是这种方法就妄想通杀&#xff0c;显然是不大可能的&am…

电子科技大学《高级算法设计与分析》期末复习汇总

&#x1f389; 博主相信&#xff1a; 有足够的积累&#xff0c;并且一直在路上&#xff0c;就有无限的可能&#xff01;&#xff01;&#xff01; &#x1f468;‍&#x1f393;个人主页&#xff1a; 青年有志的博客 &#x1f4af; 说明&#xff1a; 本文中前大部分来自简言之大…

Ubuntu 常用命令之 sudo 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 sudo命令在Ubuntu系统中是一个非常重要的命令&#xff0c;它允许系统管理员赋予某些用户&#xff08;或用户组&#xff09;以系统管理员的身份运行一些或全部的命令。sudo代表“superuser do”&#xff0c;即以超级用户的身份执行…

SQL Server 安装教程

安装数据库 1、启动SQL Server2014安装程序&#xff0c;运行setup.exe文件&#xff0c;打开”SQL Server安装中心“对话框&#xff0c;单击左侧 的导航区域中的”安装“选项卡。 2、选择”全新SQL Server独立安装或向现有安装添加功能“&#xff0c;启动SQL Server2014安装向导…

【虹科分享】使用Allegro网络万用表进行网络分析

文章速览&#xff1a; Allegro网络万用表在公用事业公司的应用领域Allegro网络万用表 VS. WiresharkAllegro 200和Allegro 500&#xff1a;作为标准配置 传统企业成为互联网服务提供商&#xff0c;如何利用数字工具实现现代化转型&#xff1f;本期文章&#xff0c;我们分享一家…

C++初阶-模板进阶

模板进阶 一、非类型模板参数1.1 引出1.2 非类型模板参数 二、array类2.1 array类的介绍与价值2.2 array的特性2.2.1 array和vector的区别2.2.2 大小不一样2.2.3 array与vector的区别2.2.4 总结 三、模板的特化3.1 概念3.2 函数模板的特化3.3 类模板的特化3.3.1 全特化3.3.2 偏…

ansible远程操作主机功能(2)

command模块 一般用于执行Linux的命令&#xff0c;不支持管道符和重定向。 2&#xff0c;shell模块相当于command的升级版&#xff0c;也可以执行Linux命令。支持管道符和重定向 3&#xff0c;Cron在远程主机生成定时任务 分 时 日 月 周 Minute hour day month …