• PDF控件Spire.PDF for .NET【安全】演示:获取 PDF 签名中的所有证书


    Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。

    E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

    Spire.PDF for.net下载   Spire.PDF for java下载

    Spire.PDF允许获取和验证PDF文件中的特定签名,现在从3.8.82版本开始,Spire.PDF支持获取PDF签名中的所有证书。在本文中,我们将向您展示如何使用 Spire.PDF 完成此任务的步骤。

    为了进行演示,我们使用了一个 PDF 模板文件,其中包含两个证书:

    如何获取PDF签名中的所有证书

    代码片段:

    步骤 1:实例化 PdfDocument 对象并加载 PDF 文件。

    PdfDocument doc = new PdfDocument();
    doc.LoadFromFile("UPS.pdf");
    

    步骤2:创建一个List对象。

    List signatures = new List();
    

    步骤3:从PDF文件中获取所有签名并将它们添加到列表对象中。

    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);
    }
    }
    

    步骤4:从列表中获取第一个签名,然后从该签名中获取所有证书。

    PdfSignature signatureOne = signatures[0];
    X509Certificate2Collection collection = signatureOne.Certificates;
    

    有效截图

    如何获取PDF签名中的所有证书

    完整代码

    using System;
    using System.Collections.Generic;
    using System.Security.Cryptography.X509Certificates;
    using Spire.Pdf;
    using Spire.Pdf.Security;
    using Spire.Pdf.Widget;
    
    namespace Get_all_certificates_in_PDF_signature
    {
    class Program
    {
    static void Main(string[] args)
    {
    PdfDocument doc = new PdfDocument();
    doc.LoadFromFile("UPS.pdf");
    List signatures = new List();
    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);
    }
    }
    PdfSignature signatureOne = signatures[0];
    X509Certificate2Collection collection = signatureOne.Certificates;
    foreach (var certificate in collection)
    {
    Console.WriteLine(certificate.Subject);
    }
    Console.ReadKey();
    }
    }
    }
    

    以上便是如测 PDF 文档是否受密码保护,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

  • 相关阅读:
    统计学补(似然函数+EM算法)
    毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计
    shell_40.Linux特殊参数变量
    漏洞修复:Content-Security-Policy header missing
    【音视频基础】AVI文件格式
    【无标题】
    记录一次数据库CPU被打满的排查过程
    备战金九银十,Java 研发面试题整理 PDF,走到哪刷
    合约广告平台架构演进实践
    历史名人鲁迅介绍HTML个人网页作业作品下载 历史人物介绍网页设计制作 大学生英雄人物网站作业模板 dreamweaver简单个人网页制作
  • 原文地址:https://blog.csdn.net/m0_67129275/article/details/136226745