中国建设银行北京分行门户网站公告,做网站广告费,dw建设网站,wordpress拖拽式主题数字签名作为PDF文档中的重要安全机制#xff0c;不仅能够验证文件的来源#xff0c;还能确保文件内容在传输过程中未被篡改。然而#xff0c;如何正确验证PDF文件的数字签名#xff0c;是确保文件完整性和可信度的关键。本文将详细介绍如何使用免费.NET控件通过C#验证PDF签…数字签名作为PDF文档中的重要安全机制不仅能够验证文件的来源还能确保文件内容在传输过程中未被篡改。然而如何正确验证PDF文件的数字签名是确保文件完整性和可信度的关键。本文将详细介绍如何使用免费.NET控件通过C#验证PDF签名的有效性以及验证PDF文档是否被修改。
免费.NET PDF库安装
Free Spire.PDF for .NET 免费库可以通过NuGet直接安装或者通过以下链接下载产品包解压缩后手动引用dll。
https://www.e-iceblue.com/Download/download-pdf-for-net-free.html
使用C# 验证PDF数字签名有效性
Free Spire.PDF 提供了 PdfSignature 类用于代表PDF文档中的数字签名要验证签名的有效性可以用该类的 VerifySignature() 方法。
主要步骤
创建PdfDocument 对象并使用 LoadFromFile() 方法加载 PDF 文件。获取 PDF 文件中的表单然后使用获取表单字段集合。遍历所有字段并判断当前字段是否为签名字段PdfSignatureFieldWidget 类。如果是签名字段则通过 PdfSignatureFieldWidget.Signature 属性获取该PDF 签名。使用 PdfSignature.VerifySignature() 方法检查 PDF 签名的有效性输出结果。
C#示例代码
using Spire.Pdf;
using Spire.Pdf.Security;
using Spire.Pdf.Widget;namespace VerifySignature
{class Program{static void Main(string[] args){//加载PDF文档PdfDocument pdf new PdfDocument();pdf.LoadFromFile(PDF签名.pdf);//获取PDF文件中的表单字段集合PdfFormWidget pdfFormWidget (PdfFormWidget)pdf.Form;PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection pdfFormWidget.FieldsWidget;//遍历所有字段for (int i 0; i pdfFormFieldWidgetCollection.Count; i){//获取签名字段if (pdfFormFieldWidgetCollection[i] is PdfSignatureFieldWidget){PdfSignatureFieldWidget signatureFieldWidget (PdfSignatureFieldWidget)pdfFormFieldWidgetCollection[i];//获取PDF签名PdfSignature signature signatureFieldWidget.Signature;//验证签名有效性bool valid signature.VerifySignature();if (valid){Console.WriteLine(有效签名);}else{Console.WriteLine(无效签名);}}}}}
}验证结果
使用C# 验证PDF文档是否被修改
验证PDF文档是否被修改也能间接验证电子签名的有效性如果在签名之后文档内容被修改那么PDF签名也将失效。通过使用 PdfSignature 类提供的 VerifyDocModified() 方法可以快速验证PDF文档的完整性。
主要步骤
创建 PdfDocument 对象并使用 LoadFromFile() 方法加载 PDF 文件获取 PDF 文件中的表单然后使用获取表单字段集合。遍历所有字段并判断当前字段是否为签名字段PdfSignatureFieldWidget 类。如果是签名字段则通过 PdfSignatureFieldWidget.Signature 属性获取该PDF 签名。使用 PdfSignature.VerifyDocModified() 方法验证签名后文档是否被修改。输出结果。
C#示例代码
using Spire.Pdf;
using Spire.Pdf.Security;
using Spire.Pdf.Widget;namespace CheckSignature
{class Program{static void Main(string[] args){//加载PDF文档PdfDocument pdf new PdfDocument();pdf.LoadFromFile(PDF签名.pdf);//获取PDF文件中的表单字段集合PdfFormWidget pdfFormWidget (PdfFormWidget)pdf.Form;PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection pdfFormWidget.FieldsWidget;//遍历所有字段for (int i 0; i pdfFormFieldWidgetCollection.Count; i){//获取签名字段if (pdfFormFieldWidgetCollection[i] is PdfSignatureFieldWidget){PdfSignatureFieldWidget signatureFieldWidget (PdfSignatureFieldWidget)pdfFormFieldWidgetCollection[i];//获取PDF签名PdfSignature signature signatureFieldWidget.Signature;//验证签名后PDF文档是否被修改bool modified signature.VerifyDocModified();if (modified){Console.WriteLine(文档被修改了。);}else{Console.WriteLine(文档未被修改。);}}}}}
}验证结果
通过这些步骤和示例代码我们可以确保PDF文档的完整性和电子签名的有效性从而在处理重要文件时提供额外的安全保障。 相关文章推荐 C# 在PDF中添加数字签名 C# 获取PDF数字签名证书 C# 加密、解密PDF文档