在PDF中创建数字签名广泛用于保护PDF文件。因此,当您查看带有数字签名的PDF文件时,您需要获取并验证数字签名。本文向您展示了使用Spire.PDF和C#代码获取和验证PDF中的数字签名的解决方案。

确保已正确安装Spire.PDF for .NET(版本2.9或更高版本)。在下载的Bin文件夹中添加Spire.PDF.dll作为参考,考虑以下路径:“.. \\ Spire.PDF \\ Bin \\ NET4.0 \\ Spire.PDF.dl”。

下面是如何获取和验证数字签名的C#代码片段,如下所示:

加载带有数字签名的PDF文件。

[C#]

string filename = @“.. \\ .. \\ DigitalSignature.pdf”;

从PDF获取所有签名:

[C#]

List <PdfSignature> signature = new List <PdfSignature>();
using(var doc = new PdfDocument(filename))
{
   var form =(PdfFormWidget)doc.Form;
   for(int i = 0; i <form.FieldsWidget.Count; ++ i)
   {
        var field = form.FieldsWidget [i] as PdfSignatureFieldWidget;

        if(field!= null && field.Signature!= null)
        {
            PdfSignature signature = field.Signature; 
            signatures.Add(signature);
         }
    }
}

获得第一个签名:

[C#]

PdfSignature signatureOne =signatures[0];

验证签名:

[C#]

try
{
  bool bSignature = signatureOne.VerifySignature();
}
catch (Exception ex)
{
     Console.WriteLine(ex.Message);
     Console.ReadLine();
}

获得签名认证:

[C#]

X509Certificate2 certificate = signatureOne.Certificate as X509Certificate2;

获取签名日期:

[C#]

DateTime date = signatureOne.Date;

获取签名开始和结束的日期:

[C#]

DateTime validStart = certificate.NotBefore;
DateTime validEnd = certificate.NotAfter;

获取证书的版本:

[C#]

int version = certificate.Version;

从证书中获取主题专有名称:

[C#]

string subject = certificate.Subject;

请检查有效截图如下:

\"PDF数字签名\"

收藏 打印