SHA512 雜湊值產生器會產生固定的 512 位元 SHA-2 摘要:64 位元組,以恰好 128 個小寫十六進位字元或標準填補 Base64 表示。

Sha512 雜湊值產生器會對 UTF-8 文字或本機檔案的位元組套用完整的 SHA-512 演算法。計算作業在瀏覽器中進行,因此所選訊息或檔案不會上傳至應用程式伺服器。

sha512 hash generator
SHA512 雜湊值產生器:位元組層級指南

完整 SHA-512 摘要包含哪些內容

SHA-512 是 NIST FIPS 180-4 所指定的 SHA-2 系列中完整的 512 位元成員。它使用 64 位元字元處理 1024 位元組的訊息區塊,然後將最終 8 個 64 位元狀態值結合成完整摘要。

可見的 Hex 長度直接取決於摘要位元組數:

64 個摘要位元組 × 每個位元組 2 個十六進位字元 = 128 個十六進位字元

因此,128 個字元的 Hex 結果是預期的完整 SHA-512 表示,而非意外重複或格式錯誤。Base64 則以更精簡的文字形式表示相同的 64 個摘要位元組。

表示方式或建構方式 定義的輸出 使用時機
Hex 格式的完整 SHA-512 恰好 128 個小寫十六進位字元 接收系統明確要求以 Hex 格式提供完整 SHA-512
Base64 格式的完整 SHA-512 相同 64 個摘要位元組的標準填補 Base64 編碼 接收系統明確要求以 Base64 格式提供完整 SHA-512
SHA-512/256 採用不同初始化值的獨立 256 位元建構方式 通訊協定明確指定 SHA-512/256
SHA-384 獨立的 384 位元 SHA-2 建構方式 通訊協定明確指定 SHA-384
HMAC-SHA-512 含金鑰的結果,而非原始 SHA-512 摘要 驗證需要共用密鑰

SHA-512/256 並不是隨意替完整 SHA-512 結果加上標籤或將其截斷而產生。它使用不同的初始化值及較短的輸出。如果通訊協定需要較短的 SHA-2 變體,請使用該確切變體的實作,而不要手動縮短本工具的輸出。

此產生器也包含 8 個標準測試案例,涵蓋空序列、abc、FIPS 多區塊訊息、標點符號變更、UTF-8、任意二進位元組及常見文字。預期值會與 NIST 或 RFC 來源核對,並使用 OpenSSL 獨立重現;標準 abc 摘要的精確 Base64 編碼另有專屬斷言。

選擇符合位元組的輸入

在文字模式下,輸入的字串會先轉換為 UTF-8 再進行雜湊,介面會顯示產生的位元組數。開頭空格、結尾空格、定位元、空行及最後的換行全都是有意義的位元組。該欄位不是輸入內容的視覺近似值;它會直接依您提供的文字進行轉換。

在檔案模式下,工具會對本機檔案的原始位元組進行雜湊。它不會解譯或變更檔名、字元集或 MIME 類型,也不會將二進位檔案解碼為文字。此區隔可避免常見的不相符情況:將檔案解碼再重新編碼,可能會在位元組送入雜湊函式前就改變其內容。

輸入方式 實際進行雜湊的位元組 主要保留規則
文字 輸入字串的 UTF-8 編碼 保留空白字元、行尾、Unicode 序列及任何位元組順序標記
檔案 檔案原本的原始位元組 不要先解碼、標準化、重新編碼或以其他方式轉換該成品

空白文字是有效的 SHA-512 訊息,具有標準摘要值。請明確產生其摘要,不要將空白欄位解讀為未進行計算。

產生並驗證摘要

  1. 選擇正確的輸入模式及確切來源。若為文字,請輸入或貼上確切字串,包括刻意加入的空白字元及任何最終換行。若為檔案,請選擇需要檢查位元組的本機成品。

  2. 產生完整的 SHA-512 值。此作業會接收確切的 UTF-8 或檔案位元組,並保留全部 64 個摘要位元組。文字模式會顯示 UTF-8 位元組數,而兩種模式都會以 128 個字元的小寫 Hex 及標準填補 Base64 提供完整摘要。

  3. 複製接收端所需的表示形式。依接收規格選擇 Hex 或 Base64,然後使用對應的複製控制項。複製作業只會提供摘要表示形式,不會將所選檔案的位元組放到剪貼簿中。

  4. 將每個字元與可信的 SHA-512 參考值比對。確認參考值描述的是原始、完整的 SHA-512,並使用相同的輸出表示形式。另請驗證接收端並未要求 SHA-512/256、SHA-384、HMAC-SHA-512 或數位簽章。

檔案讀取與摘要作業會使用非同步作業識別。如果在舊作業執行期間變更輸入模式或來源,過時的輸出便不會覆蓋較新的狀態。

為何兩個 SHA-512 結果可能不同

不相符通常源自輸入位元組變更或採用不同的摘要建構方式。將結果視為實作失敗前,請先檢查以下原因:

  • 空白字元:即使文字在畫面上看起來幾乎相同,結尾空格、定位元、空行或最終換行都會改變訊息。
  • 行尾:使用歸位鍵換行加換行符號的系統,與只使用換行符號的系統,會雜湊不同的位元組序列。
  • Unicode 處理:將字元正規化,或新增、移除位元組順序標記,都可能改變 UTF-8 位元組。兩個外觀相似的字串不一定具有相同的位元組序列。
  • 文字與檔案:文字模式會從欄位建立 UTF-8 位元組,檔案模式則使用成品既有的位元組。請選擇符合原始來源的方式。
  • 輸出表示形式:Hex 與 Base64 是摘要的兩種編碼,而非兩個可互換的字串。標準填補 Base64 也不同於移除填補字元後的表示形式。
  • 雜湊建構方式:即使處理相同的外顯訊息,原始 SHA-512、SHA-512/256、SHA-384、HMAC-SHA-512 與簽章仍是不同的產物。

只變更檔名或 MIME 標籤不會改變檔案摘要,因為檔案模式雜湊的是位元組,而非中繼資料。變更檔案內容則會改變摘要。請將預期值與要檢查的成品分開存放,並透過可信或經過驗證的路徑取得預期值;更長的摘要無法修正不可信的參考值。

符合所需的輸出表示形式

當規格指定十六進位摘要,或系統要求單純的十六進位字元序列時,Hex 會很方便。產生器的小寫 Hex 形式,每個摘要位元組恰好包含 2 個字元。請複製完整字串,不要為求方便而縮短。

當接收端要求以更精簡的形式表示相同的 64 個摘要位元組時,Base64 很有用。工具傳回的是標準填補 Base64,而不是第二種不同的雜湊值。請複製通訊協定要求的表示形式;不要僅因 Hex 較熟悉就取而代之。

儲存或傳輸此值時,請使用準確的標籤,例如 完整 SHA-512。此標籤能避免日後的讀者將它與 SHA-512/256、截斷值、HMAC 或簽章混淆。

SHA-512 能證明什麼,以及不能證明什麼

當通訊協定指定原始 SHA-512,且有可信的預期摘要可用時,原始 SHA-512 適合用於完整性工作流程。它也能支援與大型公開識別碼進行比對,或重現以完整 512 位元 SHA-2 成員為基礎的系統所產生的值。摘要是確定性的,但輸入的每個位元組都會影響結果。

SHA-512 不是加密,沒有解密金鑰,也無法使用密碼反向還原。原始雜湊值也無法證明訊息由誰提供。HMAC-SHA-512 為驗證加入共用密鑰,而公鑰簽章則提供不同的來源驗證模型。請選擇系統要求的建構方式,不要將較長的原始摘要視為真實性的通用證明。

原始 SHA-512 也不適合用於儲存密碼。通用雜湊刻意設計得很快,這有助於攻擊者離線測試大量密碼猜測。密碼資料庫需要唯一的鹽值,以及 Argon2id、scrypt 或 bcrypt 等專用函式,並設定適當的工作參數。此產生器不會加入鹽值、延伸運算、帳戶情境資訊或密鑰加 pepper。

大型檔案與瀏覽器限制

瀏覽器介面可接受最高 100 MB 的輸入,因為其摘要作業會接收一個完整緩衝區。這是刻意的介面限制,用於維護分頁 responsiveness 與記憶體用量,而非 SHA-512 演算法的理論限制。

若要處理數 GB 的影像或其他超大型成品,請使用信譽良好的串流式命令列實作。SHA-512 能處理的訊息大小遠超此瀏覽器工具可接受的範圍,而串流工作流程可避免將整個成品載入記憶體。將該結果與本機介面比較時,請等待本機作業完成,再比較完整輸出。

最終逐位元組驗證清單

  • 只有當來源是應編碼為 UTF-8 的字串時,才選擇文字。
  • 當所需的輸入是原始檔案位元組時,請選擇檔案。
  • 保留刻意加入的空格、定位元、換行、Unicode 序列及位元組順序標記。
  • 明確執行產生作業,包括空白文字訊息。
  • 選擇接收端所需的 Hex 或填補 Base64 表示形式。
  • 確認預期的建構方式是原始、完整的 SHA-512,而不是較短的變體、HMAC 或簽章。
  • 透過可靠路徑取得的可信參考值,逐一比對每個字元。

只有在了解輸入位元組與建構方式的情況下,結果才能作為摘要使用。清楚區分這些差異,可讓產生的 SHA-512 值在瀏覽器工具、可信的參考實作及最終接收該值的系統之間重現。

如需深入了解,請參閱 UTF8 解碼說明:位元組如何變成 Unicode。