iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#如何获取PDF中的数字签名证书
  • 272
分享到

C#如何获取PDF中的数字签名证书

2023-06-21 20:06:03 272人浏览 八月长安
摘要

C#如何获取pdf中的数字签名证书,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PDF中的加数字签名是对文档权威性的有效证明。我们在向PDF文档添加签名时,需要准备可信任的签名

C#如何获取pdf中的数字签名证书,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

PDF中的加数字签名是对文档权威性的有效证明。我们在向PDF文档添加签名时,需要准备可信任的签名证书。同时,对已有的签名,可验证签名是否有效,也可以获取文档中的签名证书信息。下面,以C#代码示例展示如何来获取PDF中的数字签名证书信息。

环境准备

需要在程序中导入Spire.Pdf.dll。这里以一个控制台应用程序为例,引用dll可选择以下两种方法中的任意一种即可:

方法1:打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”:

C#如何获取PDF中的数字签名证书

选择“浏览”,“浏览”,并找到本地路径BIN文件夹下的Spire.Pdf.dll文件:

C#如何获取PDF中的数字签名证书

C#如何获取PDF中的数字签名证书

添加到引用列表后,勾选,点击“OK”完成引用:

C#如何获取PDF中的数字签名证书

C#如何获取PDF中的数字签名证书

方法2:通过NuGet安装。

在VS程序中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”:

C#如何获取PDF中的数字签名证书

点击“搜索”,在搜索框中输入,点击包,安装:

C#如何获取PDF中的数字签名证书

或者通过PM控制台安装:

Install-Package Spire.PDF -Version 7.11.1

代码示例

实现读取签名的证书,本次代码主要分为以下步骤:

实例化PdfDocument类的对象,并通过PdfDocument. LoadFromFile(string filename)方法加载PDF文档。

通过PdfFORMWidget. FieldsWidget属性获取PdfFormFieldWidgetCollection类的域集合

通过for循环遍历所有域,并判断集合中的域是否为PdfSignatureFieldWidget类的签名域。

获取PdfSignatureFieldWidget类的签名域后,通过其提供的PdfSignatureFieldWidget. Signature.Certificate属性获取签名证书,以及该属性下枚举的20余种方法(如下图)来获取证书的详细信息。

C#如何获取PDF中的数字签名证书

(本次代码中仅简单列举使用了2种方法获取证书信息。)

最后通过控制台输出获取的证书信息。

C#

using Spire.Pdf;using Spire.Pdf.Widget;using System;namespace GetCertificateInfo{    class Program    {        static void Main(string[] args)        {            //实例化PdfDocument类的对象,并加载PDF文档            PdfDocument pdf = new PdfDocument();            pdf.LoadFromFile("test.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];                    //获取签名证书                    string certificateInfo = signatureFieldWidget.Signature.Certificate.ToString();                                        //获取证书格式                    string format = signatureFieldWidget.Signature.Certificate.GetFormat();                    Console.WriteLine(certificateInfo+ "\n"+ "[CertificateFormat]\n " + format );                }            }            Console.ReadKey();                  }    }}

VB.NET

Imports Spire.PdfImports Spire.Pdf.WidgetNamespace GetCertificateInfo    Class Program        Private Shared Sub Main(args As String())            '实例化PdfDocument类的对象,并加载PDF文档            Dim pdf As New PdfDocument()            pdf.LoadFromFile("test.pdf")            '获取域集合            Dim pdfFormWidget As PdfFormWidget = DirectCast(pdf.Form, PdfFormWidget)            Dim pdfFormFieldWidgetCollection As PdfFormFieldWidgetCollection = pdfFormWidget.FieldsWidget            '遍历域            For i As Integer = 0 To pdfFormFieldWidgetCollection.Count - 1                '判定是否为签名域                If TypeOf pdfFormFieldWidgetCollection(i) Is PdfSignatureFieldWidget Then                    '获取签名域                    Dim signatureFieldWidget As PdfSignatureFieldWidget = DirectCast(pdfFormFieldWidgetCollection(i), PdfSignatureFieldWidget)                    '获取签名证书                    Dim certificateInfo As String = signatureFieldWidget.Signature.Certificate.ToString()                    '获取证书格式                    Dim format As String = signatureFieldWidget.Signature.Certificate.GetFormat()                    Console.WriteLine(Convert.ToString((certificateInfo & Convert.ToString(vbLf)) + "[CertificateFormat]" & vbLf & " ") & format)                End If            Next            Console.ReadKey()        End Sub    End ClassEnd Namespace

读取结果

C#如何获取PDF中的数字签名证书

看完上述内容,你们掌握C#如何获取PDF中的数字签名证书的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: C#如何获取PDF中的数字签名证书

本文链接: https://www.lsjlt.com/news/300625.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#如何获取PDF中的数字签名证书
    C#如何获取PDF中的数字签名证书,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PDF中的加数字签名是对文档权威性的有效证明。我们在向PDF文档添加签名时,需要准备可信任的签名...
    99+
    2023-06-21
  • C#获取PDF中的数字签名证书
    目录环境准备代码示例读取结果PDF中的加数字签名是对文档权威性的有效证明。我们在向PDF文档添加签名时,需要准备可信任的签名证书。同时,对已有的签名,可验证签名是否有效,也可以获取文...
    99+
    2024-04-02
  • Android 应用签名证书的SHA1、MD5、SHA256值在哪获取?
    SHA1值分为发布版和调试版。MD5、SHA256与SHA1的获取是一样的。 调试版就是我们平时开发测试时用的默认签名文件。这个默认的签名文件一般是在c盘的用户名目录下的.android文件夹内。 默认文件就是 debug.keystore...
    99+
    2023-09-09
    android android studio ide
  • 如何获取网站的HTTPS证书
    如何获取网站的HTTPS证书,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。如何获取网站的HTTPS证书如果你的网站需要收集敏感信息(包括电子邮件和密码等),那么就需要保证网站的...
    99+
    2023-06-04
  • vbs中xmldom如何获取QQ签名
    这篇文章主要为大家展示了“vbs中xmldom如何获取QQ签名”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vbs中xmldom如何获取QQ签名”这篇文章吧。'  &...
    99+
    2023-06-08
  • Java实现添加、验证PDF数字签名的方法示例
    目录Jar文件获取及导入方法:在设置文档内容保护的方法中,除了对文档加密、添加水印外,应用数字签名也是一种有效防伪手段。数字签名的文件比较容易验证,并且具有较高的权威性和可信度。在P...
    99+
    2024-04-02
  • 解决在Python中如何获取证书信息
    使用OpenSSl from OpenSSL import crypto # path表示证书路径,file_name表示证书文件名 cert_file = '/path/file_name/' cert_file = '/pa...
    99+
    2023-01-31
    证书 信息 Python
  • 如何在CentOS中配置和使用自签名SSL证书
    要在CentOS中配置和使用自签名SSL证书,可以按照以下步骤操作: 生成SSL证书和私钥: 使用openssl命令生成SSL证...
    99+
    2024-04-25
    CentOS
  • C#中怎么给PDF 添加可视化和不可见数字签名
    这期内容当中小编将会给大家带来有关C#中怎么给PDF 添加可视化和不可见数字签名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 在VS程序中通过Nuget安装 Spire.PDF for .NET 版...
    99+
    2023-06-20
  • c#怎么获取字符串中的数字
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • jquery如何获取标签的个数
    使用jquery获取标签个数的方法:1.新建html项目,引入jquery;2.创建html标签;3.添加button按钮,绑定onclick点击事件;4.通过标签名获取标签对象,使用length属性返回标签个数;具体步骤如下:首先,新建一...
    99+
    2024-04-02
  • c#中如何获取指定字符前的字符串
    目录c#获取指定字符前的字符串问题描述解决方案c#去除字符串前后任意指定字符总结c#获取指定字符前的字符串 问题描述 Combobox的值为:100088|仓库编码1,如何将截取指定...
    99+
    2023-03-03
    c#获取字符串 c#指定字符 c#字符串
  • windows无法验证此文件的数字签名如何解决
    这篇文章主要介绍“windows无法验证此文件的数字签名如何解决”,在日常操作中,相信很多人在windows无法验证此文件的数字签名如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows无法验证...
    99+
    2023-07-02
  • IIS安装SSL证书后PHP无法获取数据如何解决
    这篇文章主要介绍“IIS安装SSL证书后PHP无法获取数据如何解决”,在日常操作中,相信很多人在IIS安装SSL证书后PHP无法获取数据如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”IIS安装SSL证...
    99+
    2023-07-05
  • uni-app离线打包在android studio创建的.jks证书,签名文件获取不到MD5问题
    uni-app离线打包—在android studio创建的.jks签名文件获取不到MD5问题 第一次用开发中遇到的问题之一(开发uni-app遇到的问题) 项目说明: 项目是一个比较老的项目,然后...
    99+
    2023-09-23
    uni-app android vue js
  • PHP如何获取指定数组的第一个键的名字
    这篇文章将为大家详细讲解有关PHP如何获取指定数组的第一个键的名字,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 获取指定数组的第一个键的名称 在 PHP 中,获取数组第一个键的名称有多种方法: 1...
    99+
    2024-04-02
  • java如何获取字符串的字节数
    在Java中,可以使用getBytes()方法来获取字符串的字节数。这个方法返回一个字节数组,其中包含了字符串的字节表示。示例代码如...
    99+
    2023-09-11
    java
  • css选择器中如何获取有小数点的标签
    小编给大家分享一下css选择器中如何获取有小数点的标签,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!需求说明因为项目中章节配置的时候有小数点,1,1.1,1.2,...
    99+
    2023-06-08
  • PHP如何获取一个数组的最后一个键的名字
    这篇文章将为大家详细讲解有关PHP如何获取一个数组的最后一个键的名字,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 方法 1:使用 end() 函数 end() 函数返回数组中最后一个元素的值,同时将内...
    99+
    2024-04-02
  • php获取pdf中的图片不显示如何解决
    这篇文章主要介绍“php获取pdf中的图片不显示如何解决”,在日常操作中,相信很多人在php获取pdf中的图片不显示如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php获取pdf中的图片不显示如何解决...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作