跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

使用C#验证PDF数字签名有效性的方法示例

目录引言使用C# 验证PDF数字签名有效性使用C# 验证PDF文档是否被修改引言数字签名作为PDF文档中的重要安全机制,不仅能够验证文件的来源,还能确保文件内容在传输过程中未被篡改。然而,如何正确验证PDF文件的数字签名,是确保文件完整性和可信度的关键。本文将详细介绍如何使用免费.NET控件通过C#验证PDF签名的有效性以及验证PDF文档是否被修改。

使用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#利用Spire.Pdf包实现为PDF添加数字签名C# 获取PDF中的数字签名证书C#和vb.net实现PDF 添加可视化和不可见数字签名c# 给pdf添加数字签名的步骤

相关文章