C#实战:基于iTextSharp实现PDF加密小工具
图片大家日常办公中有时候为了文档资料的安全需要对文档进行加密,尤其是针对PDF文档这个场景还是非常广泛的。今天给大家分享使用C#来实现PDF文档加密功能。并且功能基于Winform窗体程序可以直接运行,感兴趣的朋友可以体验一下!
1、技术框架
开发工具:VS2019
框架:C#+iTextSharp+WinForm
iTextSharp 是 .NET 平台上的开源 PDF 处理库,支持文档创建、文本/图像添加、表单处理、密码保护、水印添加等功能。
2、代码实战
首先打开Visual Studio 2019 创建一个WinForm窗体程序项目。然后引入第三方iTextSharp类库版本5.5.10。这里直接使用nuget包直接安装。
图片2.1 创建窗体
界面主要有选择pdf文档按钮、pdf文档路径和pdf密码输入框以及PDF加密按钮。界面效果如下:
图片2.2 后台代码逻辑
加密pdf文档逻辑代码如下:
///
/// 加密pdf文档
///
/// 输入目录
/// 输出目录
/// 用户密码
/// 所有者密码
private void EncryptPdf(string inputPath, string outputPath, string userPassword, string ownerPassword)
{
using (FileStream input = new FileStream(inputPath, FileMode.Open, FileAccess.Read))
using (FileStream output = new FileStream(outputPath, FileMode.Create))
{
PdfReader reader = new PdfReader(input);
PdfStamper stamper = new PdfStamper(reader, output);
// 设置加密参数
int permissions = PdfWriter.AllowPrinting |
PdfWriter.AllowCopy |
PdfWriter.AllowScreenReaders |
PdfWriter.AllowModifyAnnotations;
// 加密文档 (128位加密)
stamper.SetEncryption(
Encoding.UTF8.GetBytes(txtUserPassword.Text),
Encoding.UTF8.GetBytes(txtOwnerPassowrd.Text),
permissions,
PdfWriter.ENCRYPTION_AES_128
);
stamper.Close();
reader.Close();
}
}
项目完整结构如下:
图片2.3 PDF加密用户类型
PDF加密用户类型分为userPassword和ownerPassword是两种不同权限的密码,主要区别如下:
用户密码(userPassword):用于限制文档的打开权限,用户输入该密码后只能进行只读操作(如查看内容),无法修改、打印或复制文档内容。
所有者密码(ownerPassword):用于获取完全控制权,通常用于文档的管理员或创建者,确保能自由编辑文档。
2.4 PDF加密权限列表

3、运行效果
运行主界面
图片选择PDF文档
图片输入用户密码和所有者密码信息
图片点击加密按钮,最终输出加密成功就可以了。
图片尝试打开PDF文档,效果如下:
图片输入密码就可以正常打开PDF文档了。
图片4、总结
以上是C#实现PDF文档加密功能的实战内容,功能比较简单。大家如果有问题的话可以评论区沟通交流!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
