PYTHON 幫助 hashlib Python(開發者指南) Curtis Chau 更新:7月 28, 2025 下載 IronPDF pip 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 Python 中的hashlib模組是一個功能強大的工具,可用於處理安全雜湊和訊息摘要演算法。 該模組為許多安全雜湊演算法提供了標準接口,使其成為需要確保資料完整性和安全性的開發人員的多功能選擇。 本文稍後也將介紹IronSoftware出品的一款功能強大的 PDF 生成庫IronPDF ,並編寫一個使用這兩個庫的腳本來示範它們的用法。 hashlib模組是 Python 標準函式庫的一部分,因此無需單獨安裝。 它包含各種加密雜湊函數,例如 MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 和 SHA-3 系列。 這些函數用於建立哈希對象,然後可以使用這些哈希對象產生資料的哈希值。 主要功能 1.廣泛的演算法: hashlib支援多種雜湊演算法,包括較舊的演算法(如 MD5 和 SHA-1)以及較新的演算法(如 SHA-256 和 SHA-3)。 2.簡單介面:每個哈希演算法都有一個建構方法,該方法傳回一個哈希物件。 可以使用 update 方法向該物件輸入數據,並使用 digest 或 hexdigest 方法產生雜湊值。 3.安全性:雖然像 MD5 和 SHA-1 這樣的一些演算法存在已知的漏洞,但 hashlib 包含了更安全的選項,如 SHA-256 和 SHA-3。 安裝 hashlib是內建模組,無需明確安裝。 基本用法 以下是使用hashlib的雜湊建構函式產生 SHA-256 雜湊值的簡單範例: import hashlib # Creating hash objects with SHA-256 hash_object = hashlib.sha256() # Update the hash object with data hash_object.update(b'IronPDF from Iron Software is Awesome') # Get the hexadecimal representation of the hash hash_hex = hash_object.hexdigest() # hash_hex is the hexadecimal digest print(hash_hex) # Output the hash # Output: 6fc0c7d6af8eb51f0cd89281db55c6a6b76b5310226fa5af2272a8eb42cc1bfe import hashlib # Creating hash objects with SHA-256 hash_object = hashlib.sha256() # Update the hash object with data hash_object.update(b'IronPDF from Iron Software is Awesome') # Get the hexadecimal representation of the hash hash_hex = hash_object.hexdigest() # hash_hex is the hexadecimal digest print(hash_hex) # Output the hash # Output: 6fc0c7d6af8eb51f0cd89281db55c6a6b76b5310226fa5af2272a8eb42cc1bfe PYTHON 進階功能 *多執行緒支援*:使用加密雜湊函數時,如果一次提供超過 2047 位元組的數據,hashlib 會在計算雜湊值時釋放全域解釋器鎖定 (GIL),從而在多執行緒應用程式中實現更好的效能。 自訂雜湊演算法**:如果您的 Python 發行版的 hashlib 連結到提供額外演算法的 OpenSSL 版本,則可以透過 new() 方法存取它們。 使用 HashLib 模組進行各種類型的哈希運算 1. 簡單哈希 import hashlib # Simple hashing example data = b'Hello, World!' hash_object = hashlib.sha256(data) hex_dig = hash_object.hexdigest() print("SHA-256 Hash:", hex_dig) # Output: SHA-256 Hash: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f import hashlib # Simple hashing example data = b'Hello, World!' hash_object = hashlib.sha256(data) hex_dig = hash_object.hexdigest() print("SHA-256 Hash:", hex_dig) # Output: SHA-256 Hash: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f PYTHON 程式碼為輸入資料產生 SHA-256 雜湊值。 2. 使用不同大小的文摘 import hashlib # Hashing with different digest sizes data = b'Hello, World!' # MD5, SHA-256, and SHA-512 hash generation hash_md5 = hashlib.md5(data).hexdigest() hash_sha256 = hashlib.sha256(data).hexdigest() hash_sha512 = hashlib.sha512(data).hexdigest() # Print each hash print("MD5 Hash (hex):", hash_md5) print("SHA-256 Hash (hex):", hash_sha256) print("SHA-512 Hash (hex):", hash_sha512) # Output: # MD5 Hash (hex): 65a8e27d8879283831b664bd8b7f0ad4 # SHA-256 Hash (hex): dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f # SHA-512 Hash (hex): 374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387 import hashlib # Hashing with different digest sizes data = b'Hello, World!' # MD5, SHA-256, and SHA-512 hash generation hash_md5 = hashlib.md5(data).hexdigest() hash_sha256 = hashlib.sha256(data).hexdigest() hash_sha512 = hashlib.sha512(data).hexdigest() # Print each hash print("MD5 Hash (hex):", hash_md5) print("SHA-256 Hash (hex):", hash_sha256) print("SHA-512 Hash (hex):", hash_sha512) # Output: # MD5 Hash (hex): 65a8e27d8879283831b664bd8b7f0ad4 # SHA-256 Hash (hex): dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f # SHA-512 Hash (hex): 374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387 PYTHON 程式碼使用提供的資料產生 MD5、SHA-256 和 SHA-512 雜湊值。 3. 鍵控哈希 import hashlib from hashlib import blake2b # Keyed hashing example h = blake2b(key=b'pseudorandom key', digest_size=16) h.update(b'message data') print(h.hexdigest()) # Output: 3d363ff7401e02026f4a4687d4863ced import hashlib from hashlib import blake2b # Keyed hashing example h = blake2b(key=b'pseudorandom key', digest_size=16) h.update(b'message data') print(h.hexdigest()) # Output: 3d363ff7401e02026f4a4687d4863ced PYTHON 這段程式碼示範如何使用 Blake2b 演算法建立帶有金鑰的雜湊值。 4. 隨機哈希 import hashlib import os # Randomized hashing example using PBKDF2-HMAC data = b'Hello, World!' salt = os.urandom(16) # Generate a random salt hash_object = hashlib.pbkdf2_hmac('sha256', data, salt, 100000) hex_dig = hash_object.hex() print("Randomized Hash (SHA-256):", hex_dig) # Output: Randomized Hash (SHA-256): a2a3c1a30a2add1867d55eac97fd9c84dc679691c0f15ae09c01e1bcc63ba47a import hashlib import os # Randomized hashing example using PBKDF2-HMAC data = b'Hello, World!' salt = os.urandom(16) # Generate a random salt hash_object = hashlib.pbkdf2_hmac('sha256', data, salt, 100000) hex_dig = hash_object.hex() print("Randomized Hash (SHA-256):", hex_dig) # Output: Randomized Hash (SHA-256): a2a3c1a30a2add1867d55eac97fd9c84dc679691c0f15ae09c01e1bcc63ba47a PYTHON 這些範例涵蓋了使用不同摘要長度的基本雜湊運算。 可以根據具體要求或偏好進行調整,例如使用不同的演算法或參數。 實際應用 1.資料完整性:雜湊函數通常用於確認記錄的完整性。 透過比較原始資料的雜湊值和接收資料的雜湊值,可以確保資料沒有被竄改。 2.密碼儲存:雜湊函數通常用於安全地儲存密碼。 系統儲存的是密碼的雜湊值,而不是實際的密碼。 當使用者登入時,系統會將輸入密碼的雜湊值與儲存的雜湊值進行比較。 3.數位簽名:雜湊函數通常用於建立數位簽名,以驗證訊息的真實性和完整性。 介紹 IronPDF。 ! hashlib Python((工作原理:開發者指南)):圖 1 - IronPDF for Python:Python PDF 庫 IronPDF是一個功能強大的 Python 庫,它使用 HTML、CSS、圖像和 JavaScript 來建立、編輯和簽署 PDF 文件。 它以最小的記憶體佔用提供高效能。 使用者可以從 HTML 產生 PDF ,合併或分割PDF 文檔,從 PDF 中提取文字和圖像,套用浮水印,將 PDF 柵格化為 JPEG 和 PNG 等圖像格式,加密 PDF 文件等等。 IronPDF 提供多種 PDF 操作。 IronPDF 的主要特點 HTML 至 PDF 轉換 使用者可以將 HTML 檔案、HTML 字串和 URL 轉換為 PDF。 例如,使用 IronPDF 的 Chrome PDF 渲染器將網頁渲染為 PDF 。 跨平台支援。 IronPDF 專為 Python 3+ 版本設計,可在 Windows、Mac、Linux 或雲端平台上運作。 IronPDF 也提供.NET 、 Java 、 Python和Node.js版本。 編輯和簽署 使用者可以使用 IronPDF 設定屬性、新增密碼和權限等安全措施,以及對 PDF應用數位簽章。 頁面模板和設置 IronPDF 可讓您自訂 PDF 文檔,包括頁首、頁尾、頁碼和可調整的邊距。 它還支援響應式佈局和自訂紙張尺寸。 標準合規性 IronPDF 軟體包也符合 PDF/A 和 PDF/UA 等 PDF 標準。 它支援UTF-8 字元編碼,並可處理圖像、CSS 和字體等資源。 使用 IronPDF 和 HashLib 模組產生 PDF 文檔 IronPDF 先決條件 IronPDF使用 .NET 6.0 作為其底層技術。 因此,請確保您的系統上已安裝.NET 6.0 執行階段環境。 Python 3.0+:您需要安裝 Python 版本 3 或更高版本。 Pip:安裝 Python 套件安裝程式pip來安裝 IronPDF 套件。 首先,我們建立一個 Python 檔案來新增腳本。在本例中,我們使用Visual Studio Code作為程式碼編輯器。 開啟 Visual Studio Code 並建立一個名為 hashlibDemo.py 的檔案。 安裝 IronPDF 庫: pip install ironpdf 然後加入以下程式碼來示範 IronPDF 和 Hashlib Python 套件的用法。 import hashlib import os from hashlib import blake2b from ironpdf import * # Apply your license key License.LicenseKey = "your key" # Create a PDF from a HTML string using Python content = "<h1>Awesome Iron PDF with hashlib</h1>" content += "<p>Data for all the below examples = IronPDF from Iron Software is Awesome</p>" content += "<h2> Simple hashing example</h2>" # Simple hashing example data = b'IronPDF from Iron Software is Awesome' content += "<p>hashlib.sha256(data)</p>" hash_object = hashlib.sha256(data) hex_dig = hash_object.hexdigest() print("SHA-256 Hash:", hex_dig) content += "<p>SHA-256 Hash:"+str(hex_dig)+"</p>" content += "<h2> Hashing with different digest sizes</h2>" # Hashing with different digest sizes hash_md5 = hashlib.md5(data).hexdigest() content += "<p>hashlib.md5(data).hexdigest()</p>" hash_sha256 = hashlib.sha256(data).hexdigest() content += "<p>hashlib.sha256(data).hexdigest()</p>" hash_sha512 = hashlib.sha512(data).hexdigest() content += "<p>hashlib.sha512(data).hexdigest()</p>" print("MD5 Hash (hex):", hash_md5) print("SHA-256 Hash (hex):", hash_sha256) print("SHA-512 Hash (hex):", hash_sha512) content += "<p>MD5 Hash (hex):"+str(hash_md5)+"</p>" content += "<p>SHA-256 Hash (hex):"+str(hash_sha256)+"</p>" content += "<p>SHA-512 Hash (hex):"+str(hash_sha512)+"</p>" # Keyed hashing example content += "<h2> Keyed hashing example</h2>" h = blake2b(key=b'pseudorandom key', digest_size=16) content += "<p></p>" h.update(data) print(h.hexdigest()) content += "<p>Keyed Hash (hex):"+str(h.hexdigest())+"</p>" # Randomized hashing example content += "<h2> Randomized hashing example </h2>" salt = os.urandom(16) # Generate a random salt hash_object = hashlib.pbkdf2_hmac('sha256', data, salt, 100000) content += "<p>hashlib.pbkdf2_hmac('sha256', data, salt, 100000)</p>" hex_dig = hash_object.hex() print("Randomized Hash (SHA-256):", hex_dig) content += "<p>Randomized Hash (SHA-256):"+str(hex_dig)+"</p>" # Generate PDF using IronPDF renderer = ChromePdfRenderer() pdf = renderer.RenderHtmlAsPdf(content) # Export to a file or Stream pdf.SaveAs("Demo-hashlib.pdf") import hashlib import os from hashlib import blake2b from ironpdf import * # Apply your license key License.LicenseKey = "your key" # Create a PDF from a HTML string using Python content = "<h1>Awesome Iron PDF with hashlib</h1>" content += "<p>Data for all the below examples = IronPDF from Iron Software is Awesome</p>" content += "<h2> Simple hashing example</h2>" # Simple hashing example data = b'IronPDF from Iron Software is Awesome' content += "<p>hashlib.sha256(data)</p>" hash_object = hashlib.sha256(data) hex_dig = hash_object.hexdigest() print("SHA-256 Hash:", hex_dig) content += "<p>SHA-256 Hash:"+str(hex_dig)+"</p>" content += "<h2> Hashing with different digest sizes</h2>" # Hashing with different digest sizes hash_md5 = hashlib.md5(data).hexdigest() content += "<p>hashlib.md5(data).hexdigest()</p>" hash_sha256 = hashlib.sha256(data).hexdigest() content += "<p>hashlib.sha256(data).hexdigest()</p>" hash_sha512 = hashlib.sha512(data).hexdigest() content += "<p>hashlib.sha512(data).hexdigest()</p>" print("MD5 Hash (hex):", hash_md5) print("SHA-256 Hash (hex):", hash_sha256) print("SHA-512 Hash (hex):", hash_sha512) content += "<p>MD5 Hash (hex):"+str(hash_md5)+"</p>" content += "<p>SHA-256 Hash (hex):"+str(hash_sha256)+"</p>" content += "<p>SHA-512 Hash (hex):"+str(hash_sha512)+"</p>" # Keyed hashing example content += "<h2> Keyed hashing example</h2>" h = blake2b(key=b'pseudorandom key', digest_size=16) content += "<p></p>" h.update(data) print(h.hexdigest()) content += "<p>Keyed Hash (hex):"+str(h.hexdigest())+"</p>" # Randomized hashing example content += "<h2> Randomized hashing example </h2>" salt = os.urandom(16) # Generate a random salt hash_object = hashlib.pbkdf2_hmac('sha256', data, salt, 100000) content += "<p>hashlib.pbkdf2_hmac('sha256', data, salt, 100000)</p>" hex_dig = hash_object.hex() print("Randomized Hash (SHA-256):", hex_dig) content += "<p>Randomized Hash (SHA-256):"+str(hex_dig)+"</p>" # Generate PDF using IronPDF renderer = ChromePdfRenderer() pdf = renderer.RenderHtmlAsPdf(content) # Export to a file or Stream pdf.SaveAs("Demo-hashlib.pdf") PYTHON 程式碼解釋 提供的程式碼展示如何使用 Python 的hashlib函式庫來實作各種哈希技術: 1.簡單雜湊範例:計算特定資料字串的 SHA-256 雜湊值( b'IronPDF from Iron Software is Awesome' )。 2.使用不同摘要長度進行雜湊:本節示範使用 MD5、SHA-256 和 SHA-512 演算法對確切的資料字串進行雜湊。 3.鍵值雜湊範例:此範例使用指定鍵( b'pseudorandom key' )的blake2b雜湊函數對資料執行鍵值雜湊。 4.隨機哈希範例:利用 PBKDF2-HMAC 演算法和 SHA-256 產生隨機產生鹽的隨機哈希。 PDF 產生:在示範哈希範例之後,程式碼使用 IronPDF 產生 PDF 文檔,其中包含展示哈希範例的 HTML 內容。 每個範例都說明了加密雜湊的不同方面,例如標準雜湊、金鑰哈希和隨機雜湊技術。 輸出 ! hashlib Python((工作原理:開發者指南)):圖 2 - 範例控制台輸出 PDF ! hashlib Python((工作原理:開發者指南)):圖 3 - 使用 IronPDF 的範例 PDF 輸出 IronPDF 授權。 ! hashlib Python((工作原理:開發者指南)):圖 4 - IronPDF 許可頁面 IronPDF使用 Python 許可證金鑰運作。 IronPDF for Python 提供免費試用許可證金鑰,使用戶能夠在購買前測試其豐富的功能。 在使用IronPDF 軟體包之前,請將許可證密鑰放在腳本的開頭: from ironpdf import * # Apply your license key License.LicenseKey = "key" from ironpdf import * # Apply your license key License.LicenseKey = "key" PYTHON 結論 hashlib 模組是 Python 標準函式庫的重要組成部分,它為各種應用程式提供強大且安全的雜湊函數。 無論您是要確保資料完整性、安全地儲存密碼,還是建立數位簽名,hashlib 都能提供必要的工具。 另一方面, IronPDF是一個功能強大的 PDF 生成和 PDF 處理庫。 借助這兩個庫,開發人員可以快速生成哈希值並將其儲存為 PDF 格式。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新6月 22, 2025 deepstream io(開發人員的工作原理) 在這篇文章中,我們將學習如何使用開放即時伺服器 deepstream 和 IronPDF 生成 PDF。 閱讀更多 更新6月 22, 2025 imageio python(開發人員如何工作) 我們將探討如何使用 Imageio 讀寫圖像,然後我們還將研究 IronPDF 從 Iron Software 生產的生成 PDF 文檔 閱讀更多 更新6月 22, 2025 igraph python(開發人員如何工作) 在這篇文章中,我們使用 igraph 展示了如何能夠生成網絡圖,並打印到 PDF 文件,使用靈活和可靠的 IronPDF 庫。 閱讀更多 Seaborn Python(開發者指南)XGBoost Python(開發者指南)
更新6月 22, 2025 imageio python(開發人員如何工作) 我們將探討如何使用 Imageio 讀寫圖像,然後我們還將研究 IronPDF 從 Iron Software 生產的生成 PDF 文檔 閱讀更多
更新6月 22, 2025 igraph python(開發人員如何工作) 在這篇文章中,我們使用 igraph 展示了如何能夠生成網絡圖,並打印到 PDF 文件,使用靈活和可靠的 IronPDF 庫。 閱讀更多