MD5 與 SHA 雜湊

替文字或檔案計算 CRC32、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 或 SHA3-256、SHA3-384、SHA3-512。文字按所選字元編碼計算,檔案按原始位元組。可以加金鑰做 HMAC,CRC32 除外。也可以貼一段已知摘要來核對。

這是校驗,不是存密碼的地方

MD5 和 SHA 把文字或檔案收成一段短摘要。同樣的輸入得到同樣的結果,改一個比特結果就會大變。人們用它核對下載、做快取鍵,或在不傳檔案的情況下看兩份內容是否相同。

不要用它們保存密碼。MD5 和 SHA-1 已經不能抵抗碰撞。SHA-256 適合做校驗,單獨拿來存密碼又太快。存密碼要用 bcrypt 或 Argon2,這一頁不提供那些。

怎麼用

  1. 輸入文字或選擇檔案。檔案按字節計算,不看字元編碼。文字按你選的編碼計算,預設 UTF-8,多一個換行摘要就不同。同一段中文,Big5 和 UTF-16 的摘要不一樣。
  2. 演算法可選 CRC32、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-384、SHA3-512。新做的校驗優先選 SHA-256。CRC32 是短校驗,不能填 HMAC 金鑰。
  3. 下載頁上常見的是十六進制。大小寫對同一段摘要沒有區別,核對時忽略大小寫。
  4. 只有對方也用同一把密鑰做 HMAC 時才填寫密鑰。留空是普通雜湊,不是用空字串做 HMAC。
  5. 對不上時,是字節不同、演算法不同或編碼不同,不是算式壞了。

什麼會讓結果變掉

  • 字元編碼。UTF-8、Big5 和 UTF-16 不是同一串字節。HMAC 金鑰仍按 UTF-8,只有正文走這個選項。“中文”如果和伺服器對不上,先把編碼改成對方的,或用 字串轉字節 對一下。
  • BOM、末尾換行,以及 Windows 的 \r\n 和 Unix 的 \n。
  • HMAC 和普通雜湊即使演算法名字一樣,也不是同一種運算。
  • SHA-384 和 SHA-512 走瀏覽器的加密接口,需要 https 或 localhost。CRC32、MD5、SHA-1、SHA-224、SHA-256 和 SHA3-256、SHA3-384、SHA3-512 在頁面裡直接計算。

可以拿五個字母 hello、不加換行做檢查:SHA-256 以 2cf24dba 開頭。對不上,多半是文本框裡多了空格或換行。

常見問題

能從雜湊還原原文嗎?

不能。摘要不是編碼。要還原內容用 Base64。

和“把檔案內容貼上進去”的網站結果不同。

貼上會改變字節。請用檔案按鈕,讓摘要覆蓋檔案本身。