SHA-512 是一種 512 位元加密摘要,定義於 NIST FIPS 180-4,其完整輸出正好是 64 位元組,以小寫十六進位字串表示為 128 個字元,或以填補過的 Base64 表示。該演算法以 1024 位元的區塊處理輸入訊息,將每個區塊展開為 80 字的排程,並更新八個 64 位元的狀態值,這些狀態值串接起來便構成最終的 512 位元結果。在 Linux 系統上,常用的路徑是 sha512sum 指令或 openssl dgst -sha512,兩者都會產生相同的 64 位元組輸出。Sha512 雜湊產生器 是一種基於瀏覽器的替代方案,可在您的 Linux 瀏覽器中執行相同的 FIPS 180-4 運算,傳回完整的 128 字元 Hex 摘要或相同 64 位元組的填補 Base64,且不會截斷結果。所選的文字或檔案絕不會離開您的機器,這使得該工具在您使用受限的工作站、透過 SSH 連線且難以複製貼上到終端機,或需要產生摘要與使用不同作業系統的人分享時特別實用。

generate sha512 hash linux
在 Linux 上無需終端機產生 SHA-512 雜湊

瀏覽器雜湊何時能幫助 Linux 使用者

大多數 Linux 管理員會優先選擇 sha512sum,對於單一本地檔案而言,它仍然是最簡單的方式。瀏覽器版本在幾種常見情況下有其存在的價值:精簡型用戶端或資訊站模式的 Linux 安裝(無法安裝套件)、難以將二進位路徑貼到殼層的遠端工作階段、執行 Crostini 的 Chromebook(使用者只需要摘要而無需完整的終端機工作流程),或接收端使用 Windows 或 macOS 而發布的參考值採用 Base64 而非 Hex 的驗證工作。由於運算完全在瀏覽器本地執行且絕不會離開頁面,相同的工作流程可在任何隨現行 Linux 桌面發行版一同出貨的現代瀏覽器上運作。該工具也會明確提供 64 位元組與 128 字元的輸出,與 sha512sum 印出的內容一致,因此您可以將任一端貼到比較視窗中,而無需猜測編碼方式。

完整的 SHA-512 輸出看起來如何

FIPS 180-4 中定義了 SHA-512 的數種同類演算法,將它們混淆是在 Linux 上產生的摘要與預期值不符最常見的原因。下表列出標準的 SHA-2 成員及其標準 Hex 輸出的長度。每一列均來自 FIPS 180-4 規範,而非來自任何單一實作,因此無論摘要是由 sha512sum、sha384sum、openssl dgst 或瀏覽器端實作產生,這些長度都成立。

變體輸出位元數輸出位元組數Hex 長度
SHA-2242242856
SHA-2562563264
SHA-3843844896
SHA-51251264128
SHA-512/2242242856
SHA-512/2562563264

Sha512 雜湊產生器僅會輸出完整的 512 位元變體,因此 Hex 輸出永遠是 128 個字元:64 位元組乘以每個位元組 2 個 Hex 字元等於 128。若您從此工具看到 56 字元或 64 字元的 Hex 字串,則表示有問題,因為那些分別是 SHA-224 與 SHA-256 的長度。SHA-512/256 與 SHA-512/224 共享 SHA-512 壓縮函式,但使用不同的初始值並截斷摘要;它們並非單純將 128 字元的 SHA-512 輸出對半切開而得。若某個 Linux 指令稿或其他工具給您一個 64 字元的值並標示為 SHA-512,請將其視為不同的演算法,並改用對應的產生器,而非截斷完整的摘要。

在 Linux 上無需終端機產生 SHA-512 雜湊

下列編號步驟說明如何使用基於瀏覽器的 Sha512 雜湊產生器,在 Linux 桌面、執行 Crostini 的 Chromebook 或任何其他具備現代瀏覽器的 Linux 環境中,產生經驗證的完整 SHA-512 摘要。

  1. 在您的 Linux 發行版隨附的瀏覽器中開啟 Sha512 雜湊產生器。
  2. 選擇與您的來源相符的輸入模式。對於字串、設定片段或 JSON 承載,請使用文字模式;對於任何二進位成品(例如 ISO、tarball 或編譯後的二進位檔),請使用檔案模式。
  3. 提供確切的位元組。在文字模式下,請完全依照您要雜湊的方式貼上訊息,包括任何結尾換行與縮排。在檔案模式下,請直接選擇該檔案,使其原始位元組在不經檔名、字元集或 MIME 解讀的情況下被讀取。
  4. 產生摘要。頁面會報告產生的位元組數,並顯示完整的 128 字元小寫 Hex 值以及相同 64 位元組的填補 Base64。
  5. 複製您接收端所預期的表示方式。大多數 Linux 命令列參考資料使用 Hex;部分軟體更新系統與容器映像庫則改用 Base64。
  6. 將每個字元與可信的 SHA-512 參考值逐一比對。兩個字串必須逐字元完全相符,不能新增任何空白字元,也不能移除任何前導零。

大小在 100 MB 以內的檔案會在單一緩衝區中處理,使頁面在運算執行期間仍能保持回應;對於數 GB 的磁碟映像與 tarball,請改用支援串流的命令列實作,並在本地作業完成後比對完整結果。

精確比對 Linux 參考值

sha512sum 會為每個檔案印出一個 128 字元的 Hex 字串,並支援可在跨平台間維持換行穩定的二進位模式。瀏覽器工具會產生相同的摘要,因為兩者皆對相同的位元組執行 FIPS 180-4 函式,且過程中沒有任何標準化或加鹽。當您與 Linux 產生的值進行比對時,請將比對視為檢查碼稽核:將兩個字串貼到已關閉自動換行的純文字編輯器中,或將兩個檔案餵給 diff;若兩個檔案的換行方式不同,請拒絕該比對。許多不符的報告來自於發布的參考值在第 64 或 80 行處被換行,因此請在比對前移除換行,或貼到會忽略空白的工具中。

對於 Base64 的接收端,請使用 base64 -d 解碼工具的填補 Base64 並重新編碼參考值,或在確認兩者使用相同字母集與填補方式後直接比對兩個字串。兩種表示法編碼的是相同的 64 位元組,因此任何差異都代表輸入訊息不同,而非格式選擇的差異。

導致 SHA-512 比對失敗的陷阱

SHA-512 是確定性的,且輸入中的每個位元組都很重要。新增一個句號、將 LF 換行改為 CRLF、在開頭加入 UTF-8 位元組順序標記、將 Unicode 正規化為組合或分解形式,或修剪結尾的空白,都會徹底改變摘要。空字串也是有效的輸入,且具有一公開值,開頭為 cf83e135;請明確地產生它,而非將輸入留空並假設什麼都沒有被雜湊。

在檔案模式下,請勿貼上十六進位傾印或 Base64 資料並期待工具先將其解碼,因為檔案位元組會原樣讀取,與 sha512sum 的處理方式完全相同。若您需要對二進位資料的文字表示進行雜湊,請在其他地方將其轉換為原始位元組,再將產生的檔案餵給工具。UTF-8 的處理方式對於非 ASCII 文字也很重要:在螢幕上看起來相同的字元可能會編碼為不同的位元組序列,特別是當智慧引號被替換為 ASCII 撇號時,或在複製貼上過程中將長破折號替換為兩個連字號時。

SHA-512 不適合使用的情境

512 位元摘要是 SHA-2 系列中最強的成員之一,但它並非通用的安全機制。SHA-512 沒有解密金鑰,僅憑雜湊值無法證明訊息是由誰建立的;根據威脅模型的不同,您仍然需要可信的參考路徑、搭配共享密鑰的 HMAC 構造,或公開金鑰簽章。瀏覽器工具並未創造這些機制中的任何一種,因此當接收端預期 驗證來源或從雜湊中還原秘密 時,請勿依賴原始摘要。

對於密碼儲存,原始摘要並不適合,因為通用雜湊刻意設計得很快,且離線猜測成本低廉;請使用 Argon2id、scrypt 或 bcrypt,並為每個帳戶加上鹽以及適當的工作因子。瀏覽器工具不加入任何鹽、延伸或秘密胡椒值,因此請勿使用它來為您日後打算用於驗證的秘密製作指紋。最後,若通訊協定指定使用 SHA-384、SHA-512/256 或 HMAC-SHA-512,請使用完全符合該規格的構造,而非截斷完整的 SHA-512 輸出或以另一種演算法替代。