什麼是密碼學雜湊?
密碼學雜湊函式接受任意長度的輸入,並產生固定長度的摘要。同樣的輸入永遠會產生同樣的摘要;翻轉單一位元大約會改變一半的輸出位元。本工具會為你提供的任何文字或檔案計算四種使用最廣泛的摘要——MD5(RFC 1321)、SHA-1、SHA-256 與 SHA-512(SHA 系列由 FIPS 180-4 定義)——而資料完全不會離開你的裝置。
這個雜湊產生器是如何運作的?
雜湊運算完全在你的機器上執行。SHA-1、SHA-256 與 SHA-512 會交由瀏覽器原生的 crypto.subtle.digest API 處理;MD5 則使用內建的公領域實作,因為 Web Crypto 並未隨附 MD5。步驟如下:
- 你的輸入會從文字框讀取,或將檔案從磁碟讀入
ArrayBuffer。文字會先以 UTF-8 編碼再進行雜湊,所以產生的摘要與伺服器端hashlib.sha256(text.encode())的結果一致。 - 每種演算法都會將訊息填補到區塊邊界,並逐區塊處理,透過一連串位元運算與模運算將輸入位元組與內部狀態混合。
- 當最後一個區塊處理完畢,內部狀態會被定稿:MD5 產生 128 位元、SHA-1 產生 160 位元、SHA-256 產生 256 位元、SHA-512 產生 512 位元。
- 原始的摘要位元組會依照面板上方所選的編碼,輸出為小寫十六進位或標準 Base64。
- 每個摘要都會寫入專屬的唯讀文字框,並附帶複製按鈕。開啟即時模式後,每一次擊鍵都會重新計算雜湊,讓你即時觀察雪崩效應。
我應該使用哪種雜湊演算法?
本工具提供的四種演算法,涵蓋了從早期校驗碼到目前密碼學建議的整個光譜。請依用途而非熟悉度來選擇:
- MD5(128 位元)——快速且無所不在,但在密碼學上已被攻破。自 2004 年以來實際的碰撞便已公開。僅應用於非安全性的校驗碼:去重鍵、快取破壞值、ETag 風格的指紋,以及對照可信清單驗證檔案完整性。
- SHA-1(160 位元)——同樣已不建議用於安全用途。SHAttered 攻擊在 2017 年展示了公開的 PDF 碰撞。仍可見於舊版 Git 物件 ID、較舊的 TLS 憑證以及尚未因底層雜湊弱點而洩漏金鑰的 HMAC 構造中。不要在新專案中採用。
- SHA-256(256 位元)——目前的通用預設選擇。用於 TLS 憑證指紋、Bitcoin 區塊雜湊、軟體釋出檢查碼、容器映像摘要,以及大多數現代程式碼簽章流程。猶豫時就選它。
- SHA-512(512 位元)——與 SHA-256 同屬 SHA-2 系列,但內部狀態更大、字組為 64 位元寬。在 64 位元 CPU 上通常比 SHA-256 更快,並適合需要更多碰撞餘裕或為 HMAC 金鑰提供較長摘要的情境。
為什麼使用這個雜湊產生器?
- 隱私:輸入的每一個位元組都在你的瀏覽器中本機進行雜湊。沒有檔案上傳、沒有網路往返、沒有伺服器紀錄。檔案選擇器透過 File API 直接從磁碟讀取。
- 一次計算四種摘要:貼上一次便能並排讀取 MD5、SHA-1、SHA-256 與 SHA-512,並可在不重新雜湊的情況下於十六進位與 Base64 之間切換輸出編碼。
- 符合標準的輸出:SHA 系列交由
crypto.subtle.digest處理,與你的作業系統所信任的 FIPS 180-4 實作完全相同。MD5 則逐位元組遵循 RFC 1321。 - 為驗證工作打造:即時模式可讓你在輸入時看到雪崩效應;檔案面板可處理大小直到分頁記憶體容納上限的二進位檔,讓你無需終端機即可驗證釋出封存。
雜湊函式有哪些常見應用?
雜湊在日常工程工作中隨處可見:
- 驗證下載內容:將釋出封存的 SHA-256 摘要與專案網站上公布的值對照,確認傳輸過程中未遭竄改。
- 除錯整合:重現合作服務在請求簽章中所期望的精確 MD5 或 SHA-256,方便你找出規範化字串建構器中的差一錯誤。
- 內容定址:從酬載產生確定性的 ID,作為快取鍵、去重標記或 Git 風格的物件識別碼。
雜湊範例是什麼樣子?
對 ASCII 字串 hello 進行雜湊,會得到 MD5 5d41402abc4b2a76b9719d911017c592、SHA-1 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d、SHA-256 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824,以及一段以 9b71d224bd62f3785d96d46ad3ea3d73... 開頭、128 字元長的 SHA-512 十六進位字串。在尾端加上一個空白再重新雜湊,每一個摘要都會變得面目全非。
這個雜湊產生器完全在你的瀏覽器中執行,使用的是與作業系統所信任的相同原語:SHA 系列使用 Web Crypto,並以一段精簡且經審核的 MD5 程式碼補上 Web Crypto 未提供的那種摘要。貼上、放入檔案、複製摘要——除此之外沒有任何資料離開分頁。