SHA1 雜湊

輸入0 字符 · 0 字节
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

線上 SHA1 雜湊計算工具,輸入文字立即產生 40 位十六進位雜湊值。支援文字與檔案 SHA1 計算,本機瀏覽器處理保護隱私。

相關推薦

什麼是 SHA1?

SHA1(Secure Hash Algorithm 1)是由美國國家安全局(NSA)設計、NIST 於 1995 年發布的密碼雜湊函式。它接受任意長度輸入,產生 160 位元(40 字元十六進位)輸出。

**典型用途:** ①Git / SVN 提交指紋(commit SHA);②檔案完整性校驗(歷史相容);③軟體分發雜湊(已被 SHA256 取代);④TLS 1.0 / 1.1 交握(已棄用)。

**安全狀態:** 2017 年 Google 與 CWI Amsterdam 公開了首次實際 SHA-1 碰撞攻擊(SHAttered),代表 SHA-1 已不再具備碰撞抵抗力。重要場景請使用 SHA-256 及以上;非安全場景(Git 歷史、檔案指紋)可繼續使用。

**與 MD5 的對比:** SHA1 比 MD5 安全(更長的輸出),但兩者都已不抗碰撞;MD5 用於檔案指紋 / 去重仍可,SHA1 在 Git 歷史中保留。兩者都不應繼續用於新的安全場景。

適用場景

  • Git commit 雜湊查詢
  • SVN 程式版本指紋
  • 遺留系統的 SHA1 校驗(避免升級遷移)
  • 教學 / 學術中示範密碼學雜湊
  • 對老舊軟體進行雜湊校驗(已發布 MD5 / SHA1)
  • 測試客戶端 / 服務端 SHA1 一致性

使用方法

  1. 在文字方塊輸入或貼上需要計算的內容
  2. 工具自動計算 SHA1 並顯示 40 位十六進位結果
  3. 可選:拖曳檔案計算檔案 SHA1
  4. 點擊複製按鈕取得雜湊值

功能特點

  • 文字 SHA1:即時計算(毫秒級)
  • 檔案 SHA1:分區塊計算支援大檔案
  • 本機瀏覽器處理:內容不上傳伺服器
  • 一鍵複製:複製雜湊值至剪貼簿
  • 支援中文 / Emoji / 多語言
  • 可對比兩個 SHA1 雜湊值(大小寫不敏感)

常見問題

SHA1 安全嗎?還可以使用嗎?

安全敏感場景請使用 SHA-256 / SHA-512 及以上。SHA-1 已被 Google 在 2017 年公開碰撞攻擊(SHAttered)。但:①Git 歷史相容;②老舊軟體校驗;③非敏感檔案指紋——這些場景可繼續使用。

SHA1 輸出長度是多少?

SHA1 輸出 160 位元(bit),用十六進位顯示為 40 個字元(每 4 位元對應 1 個 hex 字元)。例如:a1b2c3d4e5f6... 共 40 個字元。

SHA1 和 MD5 哪個好?

都不適合新安全場景。SHA1 安全性略優於 MD5(輸出更長)。但實務上:①檔案指紋 / 去重用 MD5(更快);②Git 相容用 SHA1;③安全場景用 SHA256+。

SHA1 區分大小寫嗎?

區分。原文與全大寫文字的 SHA1 完全不同。但雜湊值字串本身可以大小寫顯示(Linux 習慣小寫,Windows 習慣大寫),比較時僅比對字元、忽略大小寫即可。

可以計算檔案的 SHA1 嗎?

可以。點擊「上傳檔案」按鈕或拖曳檔案到頁面,工具會分區塊計算檔案 SHA1,適合大檔案不卡頓。

SHA1 是加密演算法嗎?

不是。SHA1 是單向雜湊函式,理論上無法從雜湊值反推原文。「SHA1 加密」是常見的非正式說法。本工具不是加密工具,僅是雜湊計算。

為什麼 Git 仍在使用 SHA1?

雖然 SHA1 本身已不抗碰撞,但 Git 使用的 SHA1 抗碰撞結構由 Linus Torvalds 特別設計——即使能製造原始碰撞,也無法構造同樣前綴的 Git commit 碰撞。因此 Git 目前仍安全。

輸入的內容會上傳到伺服器嗎?

本工具基於 Web Crypto API 在瀏覽器內計算,內容不上傳伺服器。本機處理保護隱私,適合敏感場景。

故障排查

SHA1 輸出和其他工具顯示不一致

請檢查:1)是否輸入完全相同的文字(含空格、換行、不可見字元);2)原文是否被自動 trim(建議勾選「包含換行」選項);3)編碼方式是否一致(UTF-8 / Big5 等)。

SHA1 輸出長度不是 40 字元?

SHA1 輸出始終是 160 位元 = 40 個十六進位字元。如輸出更長 / 更短,可能是使用 Base64 編碼顯示。請確認工具使用十六進位顯示而非其他編碼。

術語表

SHA1
160 位元密碼雜湊函式,由 NIST 在 FIPS 180-1 中標準化。已不抗碰撞,但仍是 Git 歷史、檔案校驗的常見選擇。
Hash(雜湊)
將任意長度輸入映射為固定長度輸出的數學函式。本工具的 SHA1 輸出 40 字元十六進位。
碰撞(Collision)
兩個不同輸入產生相同雜湊值。2017 年 Google 公開 SHAttered 攻擊證明 SHA1 可構造碰撞。
FIPS
Federal Information Processing Standards,美國 NIST 發布的資訊處理標準。FIPS 180-1 是 SHA1 標準。
Hex 編碼
雜湊值通常用十六進位顯示,每 4 位元二進位對應 1 個十六進位字元。SHA1 輸出 160 位元二進位 → 40 個十六進位字元。
Git commit hash
Git 使用 SHA1 標識每次提交(commit)。雖然演算法本身已被攻破,Git 仍使用 SHA1 是因為 Linus Torvalds 設計了 SHA1 抗碰撞的結構。

SHA1 與其他雜湊演算法對比

對比 SHA1 與 MD5 / SHA-2 家族的差異。

演算法輸出發布安全性
MD5128 位元 / 32 字元1992弱(2004 攻破)
SHA-1160 位元 / 40 字元1995弱(2017 攻破)
SHA-256256 位元 / 64 字元2001強(推薦)
SHA-512512 位元 / 128 字元2001極強

輸入長度對 SHA1 速度的影響

SHA1 處理速度與輸入資料量成正比。

輸入大小本機處理時間典型場景
10 字元< 1 ms短字串
1 KB< 1 ms短文字文件
100 KB1-2 ms中等文件
10 MB30-60 msPDF 檔案
100 MB300-600 ms影片檔案
1 GB3-6 s大檔案

5 種 SHA1 典型場景

涵蓋開發、版本控制、合規、安全。

使用場景風險等級核心價值
Git commit 雜湊低(Git 抗碰撞保護)歷史相容
老舊軟體 SHA1 校驗相容舊系統
教學示範理解雜湊原理
密碼雜湊高(不應使用)應改用 bcrypt / Argon2
API 簽章高(不應使用)應改用 SHA256 / HMAC-SHA256

Authoritative References