• 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 文档是否受密码保护,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

  • 相关阅读:
    JAVA基础算法(6)----- 国际象棋 α 皇后问题
    【ROS】ros-noetic和anaconda联合使用【教程】
    Linux学习之系统FAQ
    字节一面:说说TCP的三次握手
    (原创)【MAUI】一步一步实现“悬浮操作按钮”(FAB,Floating Action Button)
    SpringBoot整合Websocket,实现作为客户端接收消息的同时作为服务端向下游客户发送消息
    深度学习(五)之原型网络
    PowerQuery 多级目录数据合并,并将目录转化为字段
    Windows环境下使用python安装PyCrypto模块的方法
    Python第二语言(三、Python函数def)
  • 原文地址:https://blog.csdn.net/m0_67129275/article/details/136226745