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

使用C#驗(yàn)證PDF數(shù)字簽名有效性的方法示例

 更新時(shí)間:2024年07月03日 09:37:08   作者:Eiceblue  
數(shù)字簽名作為PDF文檔中的重要安全機(jī)制,不僅能夠驗(yàn)證文件的來源,還能確保文件內(nèi)容在傳輸過程中未被篡改,本文將詳細(xì)介紹如何使用免費(fèi).NET控件通過C#驗(yàn)證PDF簽名的有效性以及驗(yàn)證PDF文檔是否被修改,需要的朋友可以參考下

引言

數(shù)字簽名作為PDF文檔中的重要安全機(jī)制,不僅能夠驗(yàn)證文件的來源,還能確保文件內(nèi)容在傳輸過程中未被篡改。然而,如何正確驗(yàn)證PDF文件的數(shù)字簽名,是確保文件完整性和可信度的關(guān)鍵。本文將詳細(xì)介紹如何使用免費(fèi).NET控件通過C#驗(yàn)證PDF簽名的有效性以及驗(yàn)證PDF文檔是否被修改。

使用C# 驗(yàn)證PDF數(shù)字簽名有效性

Free Spire.PDF 提供了 PdfSignature 類用于代表PDF文檔中的數(shù)字簽名,要驗(yàn)證簽名的有效性可以用該類的 VerifySignature() 方法。

主要步驟:

  1. 創(chuàng)建PdfDocument 對象,并使用 LoadFromFile() 方法加載 PDF 文件。
  2. 獲取 PDF 文件中的表單,然后使用獲取表單字段集合。
  3. 遍歷所有字段,并判斷當(dāng)前字段是否為簽名字段(PdfSignatureFieldWidget 類)。
  4. 如果是簽名字段,則通過 PdfSignatureFieldWidget.Signature 屬性獲取該P(yáng)DF 簽名。
  5. 使用 PdfSignature.VerifySignature() 方法檢查 PDF 簽名的有效性
  6. 輸出結(jié)果。

C#示例代碼:

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

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

            //加載PDF文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("PDF簽名.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];

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

                    //驗(yàn)證簽名有效性
                    bool valid = signature.VerifySignature();
                    if (valid)
                    {
                        Console.WriteLine("有效簽名");
                    }
                    else
                    {
                        Console.WriteLine("無效簽名");
                    }
                }
            }
        }
    }
}

驗(yàn)證結(jié)果:

使用C# 驗(yàn)證PDF文檔是否被修改

驗(yàn)證PDF文檔是否被修改也能間接驗(yàn)證電子簽名的有效性,如果在簽名之后文檔內(nèi)容被修改,那么PDF簽名也將失效。通過使用 PdfSignature 類提供的 VerifyDocModified() 方法可以快速驗(yàn)證PDF文檔的完整性。

主要步驟:

  1. 創(chuàng)建 PdfDocument 對象,并使用 LoadFromFile() 方法加載 PDF 文件
  2. 獲取 PDF 文件中的表單,然后使用獲取表單字段集合。
  3. 遍歷所有字段,并判斷當(dāng)前字段是否為簽名字段(PdfSignatureFieldWidget 類)。
  4. 如果是簽名字段,則通過 PdfSignatureFieldWidget.Signature 屬性獲取該P(yáng)DF 簽名。
  5. 使用 PdfSignature.VerifyDocModified() 方法驗(yàn)證簽名后文檔是否被修改。
  6. 輸出結(jié)果。

C#示例代碼:

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

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

            //加載PDF文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("PDF簽名.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];

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

                    //驗(yàn)證簽名后PDF文檔是否被修改
                    bool modified = signature.VerifyDocModified();
                    if (modified)
                    {
                        Console.WriteLine("文檔被修改了。");
                    }
                    else
                    {
                        Console.WriteLine("文檔未被修改。");
                    }
                }
            }
        }
    }
}

驗(yàn)證結(jié)果:

通過這些步驟和示例代碼,我們可以確保PDF文檔的完整性和電子簽名的有效性,從而在處理重要文件時(shí)提供額外的安全保障。

以上就是使用C#驗(yàn)證PDF數(shù)字簽名有效性的方法示例的詳細(xì)內(nèi)容,更多關(guān)于C#驗(yàn)證PDF數(shù)字簽名有效性的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#實(shí)現(xiàn)AI五子棋游戲的示例代碼

    C#實(shí)現(xiàn)AI五子棋游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C#如何智能AI五子棋游戲中的人工下棋操作以及對應(yīng)的機(jī)器操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • Unity2021發(fā)布WebGL與網(wǎng)頁交互問題的解決

    Unity2021發(fā)布WebGL與網(wǎng)頁交互問題的解決

    本文主要介紹了Unity2021發(fā)布WebGL與網(wǎng)頁交互問題的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#自定義日志記錄

    C#自定義日志記錄

    這篇文章主要為大家詳細(xì)介紹了C#自定義日志記錄的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 如何使用C#從word文檔中提取圖片

    如何使用C#從word文檔中提取圖片

    圖片和文字是word文檔中兩種最常見的對象,在微軟word中,如果我們想要提取出一個(gè)文檔內(nèi)的圖片,只需要右擊圖片選擇另存為然后命名保存就可以了,今天這篇文章主要是實(shí)現(xiàn)如何使用C#從word文檔中提取圖片,需要的朋友參考下
    2016-02-02
  • 解析從源碼分析常見的基于Array的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)擴(kuò)容機(jī)制的詳解

    解析從源碼分析常見的基于Array的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)擴(kuò)容機(jī)制的詳解

    本篇文章是對從源碼分析常見的基于Array的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)擴(kuò)容機(jī)制進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 關(guān)于C#中async/await的用法實(shí)例詳解

    關(guān)于C#中async/await的用法實(shí)例詳解

    這篇文章主要介紹了關(guān)于C#中async/await的用法,今天寫一個(gè)demo徹底搞明白async/await的用法,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • C#實(shí)現(xiàn)讀取ini配置文件的內(nèi)容

    C#實(shí)現(xiàn)讀取ini配置文件的內(nèi)容

    INI就是擴(kuò)展名為"INI"的文件,其實(shí)他本身是個(gè)文本文件,可以用記事本打開,本文主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)讀取ini配置文件內(nèi)容的方法,需要的小伙伴可以了解下
    2023-12-12
  • C# CSV文件讀寫的實(shí)現(xiàn)

    C# CSV文件讀寫的實(shí)現(xiàn)

    本文主要介紹了C# CSV文件讀寫的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C#實(shí)現(xiàn)學(xué)員信息管理系統(tǒng)

    C#實(shí)現(xiàn)學(xué)員信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)學(xué)員信息管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C#開發(fā)Android百度地圖手機(jī)應(yīng)用程序(多地圖展示)

    C#開發(fā)Android百度地圖手機(jī)應(yīng)用程序(多地圖展示)

    這篇文章主要介紹了C#開發(fā)Android百度地圖手機(jī)應(yīng)用程序(多地圖展示)的相關(guān)資料,需要的朋友可以參考下
    2016-02-02

最新評論

绿春县| 霍林郭勒市| 息烽县| 南昌市| 渝北区| 新蔡县| 简阳市| 岳西县| 兴文县| 巴彦淖尔市| 东方市| 灵寿县| 罗源县| 油尖旺区| 金昌市| 阳信县| 营山县| 遵义市| 乾安县| 衡山县| 广水市| 姚安县| 乐业县| 桐梓县| 宿州市| 新安县| 铜鼓县| 巢湖市| 邮箱| 南充市| 伊宁县| 乡宁县| 邮箱| 江油市| 鄄城县| 湟中县| 洛川县| 新巴尔虎左旗| 尚义县| 象山县| 金乡县|