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

news2024/11/25 4:34:06

当涉及到在 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 文件,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring-validation实现分组校验

文章目录 前言实际开发可能会使用到分组校验maven添加依赖简单使用高级应用分组自定义分组组合分组 源码地址 前言 JSR 303中提出了Bean Validation,表示JavaBean的校验,Hibernate Validation是其具体实现,并对其进行了一些扩展,…

WEB绘图插件Canvas基础应用

一、概述 canvas 是 html5 标准中提供的⼀个标签 顾名思义是定义在浏览器上的画布,通过其强大的绘图接口,我们可以实现各种各样的图形, 炫酷的动画 ,甚至可以利用他开发⼩游戏,包括市面上很流行的数据可视化框架底层都…

【新手必看】PyCharm2023免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起学习和进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&a…

logback.xml

logback.xml <?xml version"1.0" encoding"UTF-8"?> <configuration><!-- 日志存放路径 --><property name"log.path" value"./logs" /><!-- 日志输出格式 --><property name"log.pattern&q…

释放潜力:前端开发者转向鸿蒙的必备建议

如果需要JavaScript知识点可以去我的主要观看 大家有关于JavaScript知识点不知道可以去 &#x1f389;博客主页&#xff1a;阿猫的故乡 &#x1f389;系列专栏&#xff1a;JavaScript专题栏 &#x1f389;ajax专栏&#xff1a;ajax知识点 &#x1f389;欢迎关注&#xff1a;&am…

【离散数学】——期末刷题题库(图论应用题)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

力扣:203. 移除链表元素(Python3)

题目&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 …

Windows 截图工具①FastStone Capture ②PixPin

​ 今天说说Windows好用的载图软件&#xff1a; 2023年12月21日&#xff0c;更新新增 PixPin 2款超级好用的截图软件&#xff0c;不止是载图、编辑、录屏、Gif等好用的功能&#xff0c;本人一直也在用。 ①FastStone Capture ②PixPin 软件介绍&#xff1a;FastStone Fast…

2024年【公路水运工程施工企业安全生产管理人员】考试题及公路水运工程施工企业安全生产管理人员报名考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【公路水运工程施工企业安全生产管理人员】考试题及公路水运工程施工企业安全生产管理人员报名考试&#xff0c;包含公路水运工程施工企业安全生产管理人员考试题答案和解析及公路水运工程施工企业安全生产管理…

还在用nvm?来试试更快的node版本管理工具——fnm

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热衷分享有趣实用的文章&#xff0c;希望大家多多支持&#xff0c;一起进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 目录 什么是node版本管理 常见的node版本管理工具 fnm是什么 安装fnm …

4+miRNA+机器学习生信思路,常规又简单的miRNA也能发4+

今天给同学们分享一篇生信文章“Machine learning algorithms reveal potential miRNAs biomarkers in gastric cancer”&#xff0c;这篇文章发表在Sci Rep期刊上&#xff0c;影响因子为4.6。 结果解读&#xff1a; 数据来源 本研究包括348名男性&#xff08;占64.9%&#x…

解析资产管理的革新之路:从手工盘点到易点易动RFID散步式方案

随着科技的不断进步和应用&#xff0c;资产管理领域也在不断演进和革新。从最初的手工盘点到现代的智能化解决方案&#xff0c;我们目睹了资产管理的巨大变革。其中&#xff0c;易点易动RFID散步式方案以其高效、准确和便捷的特点&#xff0c;正在成为资产管理的新宠。本文将深…

Linux之yum管理器

目录 yum管理器 yum相关指令 yum list yum list | grep yum install yum remove 拓展 1.yum install -y man-pages 2.切换yum源 3.yum install -y epel-release 4. yum install -y lrzsz rz指令 sz指令 在window系统上&#xff0c;我们会在电脑自带的应用商…

Android Studio使用Genymotion

1. Genymotion介绍 GenyMotion速度之快令人发指&#xff0c;模拟效果堪比真机调试&#xff0c;支持绝大部分的模拟器功能&#xff0c;甚至包括语音&#xff0c;Google Now&#xff0c;支持eclipse, android studio。非常适合用来开发和演示效果。 2. Genymotion下载 Genymotio…

上 GitHub 热榜,星星暴涨,这个项目相继超越了 Archery, Flyway 和 Yearning

「 登上 GitHub Trending 星星超越 Yearning 键盘的敲击不停 传播开发的福音 」⚡️ Bytebase 是一款面向开发和 DBA 的一站式数据库 CI/CD 工具。它的所有代码都开源在 GitHub 上。GitHub 也是我们触达全球用户的核心阵地。虽然 GitHub Star 数一直是一个饱受争议的指标&a…

深度学习模型压缩方法:剪枝方法分类介绍

本文将介绍深度学习模型压缩方法中的剪枝,内容从剪枝简介、剪枝步骤、结构化剪枝与非结构化剪枝、静态剪枝与动态剪枝、硬剪枝与软剪枝等五个部分展开。 一、剪枝简介 在介绍剪枝之前,首先介绍过参数化这个概念,过参数化主要是指在训练阶段,在数学上需要进行大量的微分求解…

外贸函电开发信模板?写客户开发邮件方法?

如何写好外贸函电开发信&#xff1f;英语函电中的开发信怎么写&#xff1f; 在国际贸易中&#xff0c;外贸函电开发信扮演着至关重要的角色。这是一种有效的沟通工具&#xff0c;用来建立和维护与潜在客户或合作伙伴的联系。在这篇文章中&#xff0c;蜂邮将为您提供一个外贸函…

数字化营销的未来:TikTok在圣诞季的流量引爆与转化

随着数字化时代的发展&#xff0c;社交媒体平台成为品牌数字营销不可或缺的一部分。而TikTok&#xff0c;以其独特的短视频形式和强大的用户基础&#xff0c;正逐渐崭露头角。本文将探讨TikTok在圣诞季的数字化营销策略&#xff0c;着重分析流量的引爆和转化&#xff0c;以及数…

深入了解 npm 命令

目录 前言1 初始化项目2 安装依赖3 更新依赖4 发布包5 卸载包6 查看依赖7 运行脚本8 包搜索9 查看包信息结语 前言 在现代 Web 开发中&#xff0c;JavaScript 是一种至关重要的语言&#xff0c;而 npm&#xff08;Node Package Manager&#xff09;作为 Node.js 平台的默认软件…

@WebParam(name = “param“) 这个注解的作用

WebParam 是 JAX-WS&#xff08;Java API for XML Web Services&#xff09;中的一个注解&#xff0c;用于定义 Web 服务操作中参数的详细信息。这个注解主要用于 Web 服务方法的参数上&#xff0c;以提供有关如何映射和处理这些参数的额外信息。 主要用途 指定参数名称&#…