PYTHON 說明 hashlib Python (How It Works: A Guide for Developers) Curtis Chau 更新:7月 28, 2025 下載 IronPDF pip 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 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 如何用於讀寫圖像,稍後我們還將介紹 Iron Software 的 IronPDF 如何生成 PDF 文件 閱讀更多 更新6月 22, 2025 igraph python (開發人員如何使用) 在這篇文章中,我們使用 igraph 來展示如何使用靈活可靠的 IronPDF 函式庫來產生網路圖形,並將其列印成 PDF 檔案。 閱讀更多 Seaborn Python(開發者如何使用指南)XGBoost Python(如何運作:開...
更新6月 22, 2025 imageio python (開發人員如何使用) 我們將介紹 Imageio 如何用於讀寫圖像,稍後我們還將介紹 Iron Software 的 IronPDF 如何生成 PDF 文件 閱讀更多
更新6月 22, 2025 igraph python (開發人員如何使用) 在這篇文章中,我們使用 igraph 來展示如何使用靈活可靠的 IronPDF 函式庫來產生網路圖形,並將其列印成 PDF 檔案。 閱讀更多