使用IRONPDF FOR PYTHON

如何在 Python 中添加數位簽章

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

數位簽章介紹

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

數位簽章的工作原理

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

IronPDF 介紹

如何在 Python 中添加電子簽名,圖 1:IronPDF

IronPDF

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

IronPDF 的功能不僅限於基本的 PDF 操作,還提供了進階功能,例如 HTML 到 PDF 的渲染、對 CSS 和 JavaScript 的支持,特別是能夠使用公鑰導入 RSA 向 PDF 文件添加密碼學上安全的數位簽名。 這使得它在文件真實性至關重要的場景中特別有用,例如法律、財務和官方文檔流程。

先決條件

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

1. 安裝 Python

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

2. 程式碼編輯器

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

3. 設置 Python 開發環境

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

4. 安裝必要的函式庫

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

pip install ironpdf
pip install ironpdf
SHELL

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")
py
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>")
py
PYTHON

步驟 2:建立簽名物件

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

from ironpdf import PdfSignature

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

步驟 3:可選簽署選項

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

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

步驟 4:簽署 PDF

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

doc.Sign(signature)
py
PYTHON

步驟 5:保存簽署的 PDF

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

doc.SaveAs("signed.pdf")
py
PYTHON

如何在 Python 中添加数字签名,图 2:已签名的 PDF 输出

簽名的 PDF 輸出

驗證流程

重要性

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

驗證簽章

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

pip install pycryptodome
pip install pycryptodome
SHELL

安全性和最佳實踐

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

密鑰安全

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

雜湊以確保完整性

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

信任驗證

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

結論

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

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

IronPDF提供免費試用,讓用戶在購買前探索其全部功能。 要在試用期結束後繼續使用,許可證價格從$749開始,並提供免費開發用途的存取。

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

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
如何在 Python 中開啟 PDF 檔案
下一個 >
如何在 Python 中生成 PDF 報告

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

查看許可證 >