最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用C#代碼驗證和獲取PDF中的數(shù)字簽名

 更新時間:2025年11月21日 08:57:09   作者:2501_93070778  
使用數(shù)字簽名保護(hù) PDF 對于確保文檔的完整性和不可否認(rèn)性至關(guān)重要,在此背景下,能夠驗證數(shù)字簽名同樣重要,本文將向您介紹如何在 C# 中使用 Spire.PDF for .NET 驗證或獲取 PDF 中的數(shù)字簽名,需要的朋友可以參考下

使用數(shù)字簽名保護(hù) PDF 對于確保文檔的完整性和不可否認(rèn)性至關(guān)重要。在此背景下,能夠驗證數(shù)字簽名同樣重要。有效的簽名意味著文檔自簽名以來未被篡改,并且確實來自所聲明的來源。

在處理數(shù)字簽名時,有時您可能還希望獲取簽名的證書,以了解其頒發(fā)者信息、主題信息、序列號及有效期等。本文將向您介紹如何在 C# 中使用 Spire.PDF for .NET 驗證或獲取 PDF 中的數(shù)字簽名。

安裝 Spire.PDF for .NET

首先,您需要將 Spire.PDF for .NET 包中包含的 DLL 文件添加為 .NET 項目的引用。這些 DLL 文件可以通過此鏈接下載,或者通過 NuGet 進(jìn)行安裝。

PM> Install-Package Spire.PDF

使用 C# 驗證 PDF 中的數(shù)字簽名

Spire.PDF for .NET 提供了 PdfSignature.VerifySignature() 方法,可直接檢查 PDF 文檔中數(shù)字簽名的有效性。

示例代碼如下:

using Spire.Pdf;
using Spire.Pdf.Security;
using Spire.Pdf.Widget;

namespace GetSignatureCertificate
{
    class Program
    {
        static void Main(string[] args)
        {

            //創(chuàng)建 PdfDocument 對象
            PdfDocument pdf = new PdfDocument();

            //加載 PDF 文件
            pdf.LoadFromFile("PDFSignature.pdf");

            //獲取 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];

                    //獲取簽名
                    PdfSignature signature = signatureFieldWidget.Signature;

                    //驗證簽名
                    bool valid = signature.VerifySignature();
                    if (valid)
                    {
                        Console.WriteLine("Valid signatures");
                    }
                    else
                    {
                        Console.WriteLine("Invalid signatures");
                    }
                }
            }
        }
    }
}

使用 C# 檢測已簽名的 PDF 是否被修改

要驗證 PDF 文檔在簽名后是否被修改,可以使用 PdfSignature.VerifyDocModified() 方法。如果結(jié)果顯示文檔已被篡改,則說明簽名將失效,文檔的完整性將受到破壞。

示例代碼如下:

using Spire.Pdf;
using Spire.Pdf.Security;
using Spire.Pdf.Widget;

namespace GetSignatureCertificate
{
    class Program
    {
        static void Main(string[] args)
        {

            //創(chuàng)建 PdfDocument 對象
            PdfDocument pdf = new PdfDocument();

            //加載 PDF 文檔
            pdf.LoadFromFile("PDFSignature.pdf");

            //獲取 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];

                    //獲取簽名
                    PdfSignature signature = signatureFieldWidget.Signature;

                    //檢查文檔在簽名后是否被修改
                    bool modified = signature.VerifyDocModified();
                    if (modified)
                    {
                        Console.WriteLine("文檔已被修改。");
                    }
                    else
                    {
                        Console.WriteLine("文檔未被修改。");
                    }
                }
            }
        }
    }
}

使用 C# 獲取 PDF 中數(shù)字簽名的證書

用于簽署 PDF 文件的數(shù)字證書通常包含多種信息,用于驗證頒發(fā)者的身份。使用 Spire.PDF for .NET,您可以通過 PdfSignatureFieldWidget.Signature.Certificate 屬性獲取 PDF 文件中的證書。

示例代碼如下:

using Spire.Pdf;
using Spire.Pdf.Widget;

namespace GetSignatureCertificate
{
    class Program
    {
        static void Main(string[] args)
        {
            //創(chuàng)建 PdfDocument 對象
            PdfDocument pdf = new PdfDocument();

            //加載 PDF 文件
            pdf.LoadFromFile("PDFSignature.pdf");

            //獲取 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();
        }
    }
}

到此這篇關(guān)于使用C#代碼驗證和獲取PDF中的數(shù)字簽名的文章就介紹到這了,更多相關(guān)C#驗證和獲取PDF數(shù)字簽名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)汽車租賃系統(tǒng)項目

    C#實現(xiàn)汽車租賃系統(tǒng)項目

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)汽車租賃系統(tǒng)項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C#中深度復(fù)制和淺度復(fù)制詳解

    C#中深度復(fù)制和淺度復(fù)制詳解

    這篇文章主要介紹了C#中深度復(fù)制和淺度復(fù)制的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • C#實現(xiàn)仿QQ抽屜式窗體的設(shè)計方法

    C#實現(xiàn)仿QQ抽屜式窗體的設(shè)計方法

    QQ軟件對于絕大多數(shù)的人來說再熟悉不過了,它以使用方便、界面美觀及功能完善而著稱,本文給大家介紹了C#實現(xiàn)仿QQ抽屜式窗體的設(shè)計方法,主要通過使用API函數(shù)WindowFromPoint和GetParent實現(xiàn)仿QQ的抽屜式窗體,需要的朋友可以參考下
    2024-04-04
  • C#序列化與反序列化實例

    C#序列化與反序列化實例

    這篇文章主要介紹了C#序列化與反序列化的實現(xiàn)方法,實例分析了序列化與反序列化的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2015-01-01
  • C#中事務(wù)處理和非事務(wù)處理方法實例分析

    C#中事務(wù)處理和非事務(wù)處理方法實例分析

    這篇文章主要介紹了C#中事務(wù)處理和非事務(wù)處理方法,較為詳細(xì)的分析了C#中事務(wù)處理與非事務(wù)處理的使用技巧,對于使用C#進(jìn)行數(shù)據(jù)庫程序開發(fā)有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#實現(xiàn)簡單打字小游戲

    C#實現(xiàn)簡單打字小游戲

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)簡單打字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C#中Dictionary類使用實例

    C#中Dictionary類使用實例

    這篇文章主要介紹了C#中Dictionary類使用實例,本文直接給出一個使用實例,包含一些Dictionary的基本用法,需要的朋友可以參考下
    2015-06-06
  • 使用C#在Word文檔中自動化創(chuàng)建與定制圖表

    使用C#在Word文檔中自動化創(chuàng)建與定制圖表

    在辦公自動化需求不斷增長的今天,越來越多的企業(yè)希望將數(shù)據(jù)可視化工作融入自動化文檔生成流程中,過去,我們通常依賴 Excel 或 PowerPoint 來制作圖表,再手工插入到 Word 文檔中,本文將演示如何在 Word 文檔中創(chuàng)建圖表,需要的朋友可以參考下
    2025-12-12
  • C# 在PDF中創(chuàng)建和填充域

    C# 在PDF中創(chuàng)建和填充域

    本文主要介紹了C# 在PDF中創(chuàng)建和填充域的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • DevExpress實現(xiàn)自定義TreeListNode的Tooltip的方法

    DevExpress實現(xiàn)自定義TreeListNode的Tooltip的方法

    這篇文章主要介紹了DevExpress實現(xiàn)自定義TreeListNode的Tooltip的方法,需要的朋友可以參考下
    2014-08-08

最新評論

睢宁县| 阳江市| 溧阳市| 普陀区| 金塔县| 康马县| 噶尔县| 无极县| 交城县| 南丹县| 高州市| 怀柔区| 乌兰县| 朝阳区| 康乐县| 偏关县| 贵港市| 和硕县| 邳州市| 大荔县| 麦盖提县| 沙雅县| 乌拉特后旗| 江永县| 白山市| 洛隆县| 黔南| 黔东| 巧家县| 逊克县| 和林格尔县| 富阳市| 昆明市| 三原县| 土默特左旗| 吐鲁番市| 建瓯市| 原平市| 榕江县| 木兰县| 南华县|