雜湊產生器

在下方輸入文字,即可同時產生 SHA-1、SHA-256、SHA-384 和 SHA-512 雜湊;填入金鑰還能用 HMAC 簽章。使用 Web Crypto API,所有處理均在瀏覽器中本地完成。

關於雜湊函數

密碼學雜湊函數接收輸入並產生固定大小的位元組字串。輸出(雜湊值)對於輸入是唯一的——即使微小的變更也會產生完全不同的雜湊值。

  • SHA-1 - 160 位元,已不建議用於安全用途。仍用於 Git。
  • SHA-256 - 256 位元,SHA-2 家族成員。推薦用於一般用途。
  • SHA-384 - 384 位元,SHA-2 家族成員。SHA-512 的截斷變體。
  • SHA-512 - 512 位元,SHA-2 家族成員。最強的標準雜湊。

本頁所有摘要,包括 HMAC 簽章,都來自瀏覽器自帶的 Web Crypto API。沒有任何手寫實作,也不會上傳任何內容。

有兩個設定對結果的影響超出多數人的預期。字元集決定了拿哪些位元組去算,所以同一句話在 UTF-8 和 Windows-1252 下摘要不同。換行設定對一切來自檔案的內容都很關鍵,因為按 CRLF 算出的摘要永遠不會等於按 LF 算出的。把校驗和貼進比對框,頁面會告訴你它出自這四個中的哪一個,這是辨認無標註雜湊最快的辦法。

這些東西你到底是怎麼存的?

雜湊、權杖和密碼的強度,取決於它們周圍那段程式碼:成本因子還停在預設值,權杖沒人檢查過期時間,金鑰被提交進了儲存庫。我們審查並強化應用,告訴你攻擊者最先摸到的是哪一處。

預約一次安全審查

常見問題

為什麼我算出的雜湊和別的工具不一樣?
幾乎總是因為位元組不同,而不是演算法不同。結尾多一個換行、用 CRLF 而不是 LF、文字按 Windows-1252 而不是 UTF-8 編碼,都會改變輸入,從而改變摘要。本頁面之所以提供字元集和換行設定,就是為了把這些差別攤到明面上。
MD5 去哪了?
已經拿掉了。MD5 存在可行的碰撞攻擊,對一個攻擊者可能動過手腳的檔案來說,它證明不了什麼;而且瀏覽器的加密介面不提供它,這意味著頁面裡得自帶一份手寫實作。新做的東西,用 SHA-256 是合理的預設選擇。
HMAC 是什麼,什麼時候需要?
HMAC 把一個共用密鑰混進摘要裡,只有拿著金鑰的人才能產生或驗證。webhook 簽章和 API 請求簽章要用它,因為在那些場合一般雜湊證明不了什麼,任何人都能對同一段請求主體算出來。
我到底該用哪一個?
沒有特別理由就用 SHA-256。對多數用途來說 SHA-512 並不會明顯更強,但在 64 位元硬體上更快,所以也是個合理的預設值。SHA-1 出現在這裡,是因為大量既有軟體仍在產出它,而不是推薦:它存在可行的碰撞攻擊,不該用來守護任何東西。
我的文字會到你們伺服器嗎?
不會。每個摘要都在你的瀏覽器裡算出來,其中四個由瀏覽器自帶的加密介面完成。你輸入的東西不會被上傳,所以拿它處理權杖、設定檔等你不願貼到遠端服務的內容是安全的。