C#实现PDF文件加密并设置权限操作

 更新时间:2025年09月19日 09:25:10   作者:咕白m625  
在文档安全日益重要的今天,如何用 C# 对PDF文件进行加密并设置访问权限,已成为企业级开发中的常见需求,下面就跟随小编一起来了解下具体实现方法吧

在文档安全日益重要的今天,如何用 C# 对PDF文件进行加密并设置访问权限,已成为企业级开发中的常见需求。尤其在文档共享、审批流程或敏感资料管理中,C# 加密 PDF不仅关乎数据安全,更直接影响系统可信度。

本文将分享使用 Free Spire.PDF for .NET 实现PDF文件的加密与权限控制,提供可直接复用的代码示例与操作流程,帮助开发者高效、安全地完成PDF保护。

免费 .NET PDF 库

Free Spire.PDF for .NET是专为 .NET 开发者设计的轻量级工具,支持C#、VB.NET,免费无水印,但有页数限制,适合小型项目快速集成。

  • 支持多种加密方式(密码+权限)
  • 无需安装额外组件,直接NuGet安装
  • 代码简洁,学习成本低

安装NuGet包:

Install-Package FreeSpire.PDF

核心功能:加密 + 权限设置

通过 Spire.PDF,我们可实现以下操作:

  • 设置用户密码(打开PDF需输入密码)
  • 设置所有者密码(可修改权限,如禁止打印)
  • 配置访问权限(如禁止复制、打印、编辑)
using Spire.Pdf;

namespace EncryptPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载 PDF
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("示例.pdf");

            // 指定用户密码和所有者密码
            string userPassword = "user123";
            string ownerPassword = "e-iceblue";

            PdfSecurityPolicy securityPolicy = new PdfPasswordSecurityPolicy(userPassword, ownerPassword);

            // 设置加密算法
            securityPolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_256;

            // 设置文档权限
            securityPolicy.DocumentPrivilege = PdfDocumentPrivilege.AllowAll;
            securityPolicy.DocumentPrivilege.AllowPrint = false; // 禁止打印
            securityPolicy.DocumentPrivilege.AllowContentCopying = false; // 禁止复制

            // 加密 PDF 并保存
            pdf.Encrypt(securityPolicy);
            pdf.SaveToFile("加密PDF.pdf", FileFormat.PDF);
        }
    }
}

提示:用户密码用于打开PDF,所有者密码用于修改权限,两者可独立设置。

方法补充

C# 实现PDF加密保护

  using Spire.Pdf.Security;

try
{
    PdfDocument doc = new PdfDocument();
    doc.LoadFromFile("input.pdf");
    
    //⭕重点提示:商业版功能
    PdfSecurity security = doc.Security;
    security.KeySize = PdfEncryptionKeySize.Key128Bit; // 设置128位AES加密
    security.OwnerPassword = "admin@2024"; //权限密码
    security.UserPassword = "user123"; //打开密码
    
    //权限控制参数设置
    security.Permissions = PdfPermissionsFlags.Print 
                         | PdfPermissionsFlags.CopyContent;
    
    doc.SaveToFile("encrypted.pdf");
}
catch(NotSupportedException ex) 
{
    Console.WriteLine("加密功能需要商业版授权");
}

实际应用场景

  • 合同审批流程:发送给客户前加密,禁止打印或修改,保障法律效力
  • 内部报告分发:设置权限,仅允许查看,防止信息泄露
  • 教育平台文档:学生下载后只能阅读,不可复制或编辑

在数字化办公中,C# 加密 PDF 文件不仅是一种技术手段,更是一种安全习惯。通过 Free Spire.PDF for .NET,我们能用简单代码实现高安全性保护。

到此这篇关于C#实现PDF文件加密并设置权限操作的文章就介绍到这了,更多相关C# PDF加密与权限控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c#如何显式实现接口成员

    c#如何显式实现接口成员

    这篇文章主要介绍了c#如何显式实现接口成员,帮助大家更好的利用c#处理接口,感兴趣的朋友可以了解下
    2020-10-10
  • C# .net实现货币转换示例

    C# .net实现货币转换示例

    这篇文章主要介绍了C# .net实现货币转换,其中包含了try catch、switch语句的运用,对于C#初学者有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • 详解c# 泛型类的功能

    详解c# 泛型类的功能

    这篇文章主要介绍了c# 泛型类的功能,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-10-10
  • C#通过JObject解析json对象

    C#通过JObject解析json对象

    这篇文章介绍了C#通过JObject解析json对象的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#定时器与延时操作的使用

    C#定时器与延时操作的使用

    本文详细介绍了C#开发中常用的定时器与延时机制,主要内容包括 定时器类对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • C#手动操作DataGridView使用各种数据源填充表格实例

    C#手动操作DataGridView使用各种数据源填充表格实例

    本文主要介绍了C#手动操作DataGridView使用各种数据源填充表格实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • C#默认双缓冲技术实例分析

    C#默认双缓冲技术实例分析

    这篇文章主要介绍了C#默认双缓冲技术,实例分析了双缓冲技术的设置与实现技巧,需要的朋友可以参考下
    2015-06-06
  • c# 文件操作(移动,复制,重命名)

    c# 文件操作(移动,复制,重命名)

    这篇文章主要介绍了c# 如何对文件操作(移动,复制,重命名),帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#和lua相互调用的方法教程

    C#和lua相互调用的方法教程

    lua是一种脚本语言,可以方便的移植到各种宿主语言中,并且可以支持热更新,在游戏开发中也能当做主要的语言来编写游戏的逻辑,所以这篇文章主要给大家介绍了关于C#和lua相互调用的方法教程,需要的朋友可以参考下。
    2017-11-11
  • WPF如何实现日期范围选择器

    WPF如何实现日期范围选择器

    这篇文章主要为大家详细介绍了WPF如何实现日期范围选择器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11

最新评论