news 2026/6/23 13:01:25

使用C#代码检查 PDF 是否受密码保护并确认正确的密码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用C#代码检查 PDF 是否受密码保护并确认正确的密码

PDF 的密码保护是一种常见的安全机制,用于限制访问并防止未经授权的修改。在处理 PDF 文件之前,确认其是否设置了密码保护非常重要。如果文档受保护,只有验证正确的密码后,才能成功解锁文件,从而顺利进行查看、编辑或内容提取等操作。

本文将介绍如何使用C#以及Spire.PDF for .NET库来判断 PDF 是否启用了密码保护,并演示验证正确密码的具体方法。

安装 Spire.PDF for .NET

首先,需要将Spire.PDF for .NET安装并引入到你的 .NET 项目中。你可以选择以下任一方式添加所需的 DLL 文件作为项目引用:

  • 从官方下载链接获取 DLL 文件,并手动添加到项目中;

  • 通过 NuGet 安装,这是更推荐、也更便捷的方式。

完成安装后,即可在项目中使用 Spire.PDF for .NET 提供的相关功能。

PM> Install-Package Spire.PDF

使用 C# 检查 PDF 是否受密码保护

Spire.PDF for .NET提供了PdfDocument.IsPasswordProtected(string fileName)方法,可用于判断指定的 PDF 文件是否启用了密码保护。

具体示例代码如下:

using Spire.Pdf; using System.IO; namespace CheckIfPdfIsProtected { internal class Program { static void Main(string[] args) { // 指定输入和输出文件路径 string pdfPath = "sample.pdf"; string resultFilePath = "verification_results.txt"; // 检查 PDF 文件是否受密码保护 bool isProtected = PdfDocument.IsPasswordProtected(pdfPath); // 创建 StreamWriter,将结果写入文本文件 using (StreamWriter writer = new StreamWriter(resultFilePath)) { // 将验证结果写入文本文件 string resultMessage = isProtected ? "该 PDF 文件已设置密码保护。" : "该 PDF 文件未设置密码保护。"; writer.WriteLine(resultMessage); } } } }

使用 C# 确认 PDF 的正确密码

Spire.PDF for .NET并未提供直接用于验证密码是否正确的方法,但可以通过尝试使用指定密码打开 PDF 文件来实现这一目的。如果密码不正确,程序将会抛出异常。

具体示例代码如下:

using Spire.Pdf; using System; using System.IO; namespace DetermineTheCorrectPasswordOfPdf { internal class Program { static void Main(string[] args) { // 指定输入和输出文件路径 string pdfPath = "sample.pdf"; string resultFilePath = "verification_results.txt"; // 检查 PDF 文件是否受密码保护 bool isProtected = PdfDocument.IsPasswordProtected(pdfPath); // 创建一个用于测试的候选密码数组 string[] passwords = new string[5] { "password1", "password2", "password3", "admin123", "test" }; // 创建 StreamWriter,将结果写入文本文件 using (StreamWriter writer = new StreamWriter(resultFilePath)) { // 如果 PDF 受密码保护,则开始测试密码 if (isProtected) { // 遍历候选密码数组 for (int passwordcount = 0; passwordcount < passwords.Length; passwordcount++) { try { // 创建 PdfDocument 对象,并尝试使用当前密码加载 PDF 文档 PdfDocument doc = new PdfDocument(); doc.LoadFromFile(pdfPath, passwords[passwordcount]); // 如果加载成功,说明密码正确 writer.WriteLine("密码 " + passwords[passwordcount] + " 正确"); } catch { // 如果抛出异常,说明密码不正确 writer.WriteLine("密码 " + passwords[passwordcount] + " 不正确"); } } } else { // 如果 PDF 未设置密码保护,则在结果中说明 writer.WriteLine("该 PDF 文件未设置密码保护。"); } } Console.WriteLine("验证结果已保存至:" + resultFilePath); Console.ReadKey(); } } }

获取免费许可证

如需在不受评估限制的情况下完整体验Spire.PDF for .NET的全部功能,你可以申请一份有效期为 30 天的免费试用许可证

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 20:40:09

深度学习计算机毕设之基于python-AI机器学习对狗表情训练识别基于python-AI深度学习对狗表情训练识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/16 2:56:02

【2、Gis数据-浙江省下属流域划分及其数据】

浙江省八大水系示意图&#xff1a; 浙江省八大水系详情&#xff1a; 一、钱塘江: 北源(新安江)河长588.73公里、南源(马金溪)河长522.22公里 二、瓯江: 河长379.93公里;流域面积18168.75平方公里(其中省外部分37.66平方公里) 三、椒江: 河长202.00公里;流域面积6590.71平方公里…

作者头像 李华
网站建设 2026/6/18 3:58:47

计算机深度学习毕设实战-基于CNN卷积神经网络对猫狗识别基于python_CNN深度学习卷积神经网络对猫狗识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/29 1:59:30

多肽定制合成丨Melgain 一种十肽Decapeptide

Melgain是一种外用多肽&#xff0c;主要用于治疗白癜风&#xff0c;这是一种以皮肤色素脱失斑块为特征的病症。了解Melgain的作用机制需要深入研究其活性成分、作用方式以及对皮肤细胞的总体影响。 Melgain中的活性成分是十肽&#xff0c;是一种由十个氨基酸组成的特定肽序列。…

作者头像 李华
网站建设 2026/6/15 13:08:29

【用AI指导人生、沟通、相处、冲突】遇事容易激动,易怒,情绪不稳定,感觉精神有点问题。需要平常心。需要找能代我沟通的人。不顾别人的感受。老感觉自己是受害者。心态问题,沟通问题。

遇事容易激动&#xff0c;易怒&#xff0c;情绪不稳定&#xff0c;感觉精神有点问题。需要平常心。需要找能代我沟通的人。不顾别人的感受。老感觉自己是受害者。心态有问题&#xff0c;沟通有问题。很容易把路越走越窄。 很容易把路越走越窄。别那么较劲。 全部描述出来&#…

作者头像 李华