在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
數位簽章是網路安全的重要方面,確保數位訊息和文件的真實性和完整性。 Python 擁有豐富的庫生態系統,提供了一個方便的平台,可透過定義 def sign
和 def verify
來實現有鑰匙或無鑰匙的簽名。 本指南將引導您使用 IronPDF 和加密函式庫,通過私鑰或公鑰創建和確認數位簽章。
在深入研究代碼之前,讓我們先了解什麼是數位簽章。 數位簽章與其物理對應物類似,用於驗證數位文件的真實性。 它提供安全且防篡改的封印,確保不可否認性,意味著簽署人無法否認其在文件上簽名的真實性。
數位簽章使用私鑰和公鑰的組合。 私鑰用於創建簽名,應由簽署人妥善保管。 公鑰可以與任何人共享,用於驗證相應的私鑰是否製作了簽名。 這是基於公鑰密碼學,通常使用像 RSA 這樣的算法實現。
IronPDF
IronPDF是一個用於 Python 的多功能庫,用來處理 PDF。 它提供了廣泛的功能,包括創建、編輯和渲染 PDF,以及將數位簽名或訊息嵌入 PDF 文件的能力。 由於其易於使用和強大的功能,這個庫脫穎而出,是希望將 PDF 功能整合到其 Python 應用程式中的開發人員的絕佳選擇。
IronPDF 的功能超越了基本的 PDF 操作,提供了進階的功能,如 HTML 轉換為 PDF、支援 CSS 和 JavaScript,並且最重要的是,具有添加加密功能的能力。安全數位簽名至PDF文件使用公鑰導入 RSA。 這使得它在文件真實性至關重要的場景中特別有用,例如法律、財務和官方文檔流程。
在 Python 中實現數位簽章之前,您必須完成若干前置條件和設置步驟。 這些步驟確保您擁有必要的環境、工具和理解,以有效地處理數位簽章。 以下是開始所需的詳細說明:
第一步是確保你的電腦上已安裝 Python。Python 是一種多功能的程式語言,你將用它來編寫數位簽名腳本。如果尚未安裝 Python,可以從官方的 Python 網站下載。 請確保下載與您的操作系統兼容的版本。(Windows、macOS 或 Linux).
一個好的程式碼編輯器會讓編寫和測試你的 Python 腳本更加容易。 選擇一個你感到舒適並支援 Python 語法的編輯器,最好有整合的終端機支援以便於測試和除錯功能。
擁有良好的開發環境可以讓在 Python 世界中編碼變得更加簡單明瞭。 您可以使用像 Visual Studio Code 或 Sublime Text 這樣的文字編輯器,或是整合開發環境。(集成開發環境)如 PyCharm 或 Jupyter Notebook。 這些工具提供語法高亮、代碼補全和除錯等功能,這些在編寫和測試代碼時是非常有價值的。
您將需要特定的庫來在 Python 中進行數字簽名,主要是 IronPDF。 IronPDF 用於處理 PDF 文件。 您可以使用 Python 的套件安裝工具 pip 安裝此庫。 打開您的命令行或終端並運行以下命令:
pip install ironpdf
您將需要一對加密密鑰(私鑰和公鑰)創建和驗證數位簽章。 這些可以使用像 OpenSSL 或 Adobe Acrobat Reader 這樣的工具來生成 .pfx 或 .p12 證書。 確保安全儲存這些密鑰,因為它們對於您的數位簽章的完整性和安全性至關重要。
在簽署文件之前,您需要一對加密密鑰。 您可以使用 Adobe Acrobat Reader 或其他證書管理工具生成 .pfx 或 .p12 證書。
使用 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")
在上述代碼中,使用 PdfSignature
函數搭配提供的 .p12
證書路徑和相應的密碼。 然後呼叫此函數以簽署指定的 PDF 文件。
為了更有控制地進行操作,您可以分階段簽署文件:
首先,您使用 ChromePdfRenderer
類別從 HTML 內容創建 PDF 文件:
from ironpdf import ChromePdfRenderer
renderer = ChromePdfRenderer()
doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")
接下來,使用您的證書創建一個簽名物件:
from ironpdf import PdfSignature
signature = PdfSignature(r"certificates\\IronSoftware.pfx", "123456")
您可以設定其他選項,例如聯絡方式、位置和簽署原因:
signature.SigningContact = "support@ironsoftware.com"
signature.SigningLocation = "Chicago, USA"
signature.SigningReason = "To show how to sign a PDF"
現在,使用簽名物件進行 PDF 簽署並加密:
doc.Sign(signature)
文件在儲存之前不算簽署完成:
doc.SaveAs("signed.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 檔案.