使用IRONPDF FOR PYTHON

如何在 Python 中添加數位簽章

已更新 2024年10月7日
分享:

數位簽章是網路安全的重要方面,確保數位訊息和文件的真實性和完整性。 Python 擁有豐富的庫生態系統,提供了一個方便的平台,可透過定義 def signdef verify 來實現有鑰匙或無鑰匙的簽名。 本指南將引導您使用 IronPDF 和加密函式庫,通過私鑰或公鑰創建和確認數位簽章。

數位簽章介紹

在深入研究代碼之前,讓我們先了解什麼是數位簽章。 數位簽章與其物理對應物類似,用於驗證數位文件的真實性。 它提供安全且防篡改的封印,確保不可否認性,意味著簽署人無法否認其在文件上簽名的真實性。

數位簽章的工作原理

數位簽章使用私鑰和公鑰的組合。 私鑰用於創建簽名,應由簽署人妥善保管。 公鑰可以與任何人共享,用於驗證相應的私鑰是否製作了簽名。 這是基於公鑰密碼學,通常使用像 RSA 這樣的算法實現。

IronPDF 介紹

如何在 Python 中新增數位簽章,圖 1:IronPDF

IronPDF

IronPDF是一個用於 Python 的多功能庫,用來處理 PDF。 它提供了廣泛的功能,包括創建、編輯和渲染 PDF,以及將數位簽名或訊息嵌入 PDF 文件的能力。 由於其易於使用和強大的功能,這個庫脫穎而出,是希望將 PDF 功能整合到其 Python 應用程式中的開發人員的絕佳選擇。

IronPDF 的功能超越了基本的 PDF 操作,提供了進階的功能,如 HTML 轉換為 PDF、支援 CSS 和 JavaScript,並且最重要的是,具有添加加密功能的能力。安全數位簽名至PDF文件使用公鑰導入 RSA。 這使得它在文件真實性至關重要的場景中特別有用,例如法律、財務和官方文檔流程。

先決條件

在 Python 中實現數位簽章之前,您必須完成若干前置條件和設置步驟。 這些步驟確保您擁有必要的環境、工具和理解,以有效地處理數位簽章。 以下是開始所需的詳細說明:

1. 安裝 Python

第一步是確保你的電腦上已安裝 Python。Python 是一種多功能的程式語言,你將用它來編寫數位簽名腳本。如果尚未安裝 Python,可以從官方的 Python 網站下載。 請確保下載與您的操作系統兼容的版本。(Windows、macOS 或 Linux).

2. 程式碼編輯器

一個好的程式碼編輯器會讓編寫和測試你的 Python 腳本更加容易。 選擇一個你感到舒適並支援 Python 語法的編輯器,最好有整合的終端機支援以便於測試和除錯功能。

3. 設置 Python 開發環境

擁有良好的開發環境可以讓在 Python 世界中編碼變得更加簡單明瞭。 您可以使用像 Visual Studio Code 或 Sublime Text 這樣的文字編輯器,或是整合開發環境。(集成開發環境)如 PyCharm 或 Jupyter Notebook。 這些工具提供語法高亮、代碼補全和除錯等功能,這些在編寫和測試代碼時是非常有價值的。

4. 安裝必要的函式庫

您將需要特定的庫來在 Python 中進行數字簽名,主要是 IronPDF。 IronPDF 用於處理 PDF 文件。 您可以使用 Python 的套件安裝工具 pip 安裝此庫。 打開您的命令行或終端並運行以下命令:

pip install ironpdf

5. 生成加密金鑰

您將需要一對加密密鑰(私鑰和公鑰)創建和驗證數位簽章。 這些可以使用像 OpenSSL 或 Adobe Acrobat Reader 這樣的工具來生成 .pfx 或 .p12 證書。 確保安全儲存這些密鑰,因為它們對於您的數位簽章的完整性和安全性至關重要。

生成金鑰

在簽署文件之前,您需要一對加密密鑰。 您可以使用 Adobe Acrobat Reader 或其他證書管理工具生成 .pfx 或 .p12 證書。

使用 IronPDF 簽署文件

簡單數位簽名

使用 IronPDF,簽署 PDF 可以像以下這樣簡單:

from ironpdf import PdfSignature

# Cryptographically sign an existing PDF in 1 line of code!
PdfSignature(r".\\certificates\\IronSoftware.p12", "123456").SignPdfFile("any.pdf")
PYTHON

在上述代碼中,使用 PdfSignature 函數搭配提供的 .p12 證書路徑和相應的密碼。 然後呼叫此函數以簽署指定的 PDF 文件。

進階數位簽章

為了更有控制地進行操作,您可以分階段簽署文件:

步驟1:建立PDF

首先,您使用 ChromePdfRenderer 類別從 HTML 內容創建 PDF 文件:

from ironpdf import ChromePdfRenderer

renderer = ChromePdfRenderer()
doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")
PYTHON

步驟 2:建立簽名物件

接下來,使用您的證書創建一個簽名物件:

from ironpdf import PdfSignature

signature = PdfSignature(r"certificates\\IronSoftware.pfx", "123456")
PYTHON

步驟 3:可選簽署選項

您可以設定其他選項,例如聯絡方式、位置和簽署原因:

signature.SigningContact = "support@ironsoftware.com"
signature.SigningLocation = "Chicago, USA"
signature.SigningReason = "To show how to sign a PDF"
PYTHON

步驟 4:簽署 PDF

現在,使用簽名物件進行 PDF 簽署並加密:

doc.Sign(signature)
PYTHON

步驟 5:保存簽署的 PDF

文件在儲存之前不算簽署完成:

doc.SaveAs("signed.pdf")
PYTHON

如何在 Python 中添加数字签名,圖2:已簽名的 PDF 輸出

簽名的 PDF 輸出

驗證流程

重要性

驗證確保文件的完整性沒有受到損害且簽名有效。 這涉及使用簽署者的公鑰解密文件的雜湊物件,以確保其與預期的雜湊匹配。

驗證簽章

要驗證數位簽名,您需要使用與簽名所用私鑰相關聯的公鑰。 雖然 IronPDF 函式庫簡化了簽署過程,但驗證通常需要使用類似 pycryptodome 的加密函式庫將文件的哈希與解密的簽名哈希進行比較。 運行以下命令以使用 pycryptodome:

pip install pycryptodome

安全性和最佳實踐

雖然IronPDF庫可以處理簽署PDF文件的複雜性,但了解和實施用戶身份驗證、確保密鑰的安全管理,以及使用如RSA之類的雜湊算法來保持數據完整性,這些都是數位簽章實施中必不可少的要素。

密鑰安全

始終保持您的私鑰安全。 如果其他人獲得訪問權限,他們就可以像您一樣簽署文件。

雜湊以確保完整性

在簽署資料之前,始終要進行雜湊。 這確保了簽名對於文件的內容是唯一的。

信任驗證

在信任文件之前,請務必驗證簽名。 這確保文件在簽署後未被篡改。

結論

在 Python 中使用像 IronPDF 這樣的庫可以簡化數位簽名操作。 它使開發人員能夠輕鬆地簽署和驗證文件,同時確保安全且真實的數位交易。

本指南提供了使用 Python 對 PDF 文件應用數位簽章的基本理解和實踐方法。 遵循所列示的範例和最佳實踐,您可以在您的應用程式中實現強大的數位簽章流程。

IronPDF 提供一個免費試用,讓使用者在投入之前探索其完整功能。 若要在試用期結束後繼續使用,許可證價格從 $749 起,開發用途則提供免費存取。

IronPDF還允許您構建互動表單, 分割合併PDF 文件,提取文字和圖片從 PDF 檔案中提取,搜尋 PDF 檔案中的特定單字,將 PDF 頁面光柵化為圖像,將 PDF 轉換為 HTML,以及列印 PDF 檔案.

< 上一頁
如何在 Python 中開啟 PDF 檔案
下一個 >
如何在 Python 中生成 PDF 報告

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 pip 安裝 查看許可證 >