文档中的数字签名看起来类似于纸质签名,但是,作为基于证书的电子签名,它们以加密形式包含签名者的身份。证书由受信任和授权的证书颁发机构颁发。这些机构识别证书颁发给的人。这就是为什么可以随时验证数字签名文件的原因。在本文中,我将向您展示如何使用 GroupDocs.Signature for 以编程方式验证 PDFWordExceldocuments 中的数字签名.NET APIC#

验证数字签名 PDF 文档的步骤

为了演示,我使用 PDF 文档进行数字签名验证。但是,相同的代码适用于 MS Word 和 Excel 文档格式。

1. 下载 GroupDocs.Signature for .NET 或使用 NuGet

2. 在您的代码中添加以下命名空间。

using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

3. 使用 Signature 类的实例加载数字签名的 PDF 文档。

using (Signature signature = new Signature("sample.pdf"))
{
    // 你的代码在这里。
}

4. 实例化 DigitalVerifyOptions 对象并指定验证选项。

DigitalVerifyOptions options = new DigitalVerifyOptions("certificate.pfx")
{
    Comments = "Test comment"
};

5. 调用 _Signature _class’ 实例的 Verify 方法并将 _DigitalVerifyOptions _传递给它。

// 验证文件签名
VerificationResult result = signature.Verify(options);

6. 检查来自 VerificationResult 对象的验证结果。

if (result.IsValid)
{
    Console.WriteLine("\nDocument was verified successfully!");
}
else
{
    Console.WriteLine("\nDocument failed verification process.");
}

完整代码

using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

using (Signature signature = new Signature("sample.pdf"))
{
    DigitalVerifyOptions options = new DigitalVerifyOptions("certificate.pfx")
    {
        Comments = "Test comment"
    };
    // 验证文件签名
    VerificationResult result = signature.Verify(options);
    if (result.IsValid)
    {
        Console.WriteLine("\nDocument was verified successfully!");
    }
    else
    {
        Console.WriteLine("\nDocument failed verification process.");
    }
}

因此,您可以确定 PDF 文档中的数字签名是否符合指定条件。最后,您可以将文档标记为有效或无效。阅读更多关于 GroupDocs.Signature for .NET API 这里