SHA1 雜湊
線上 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 一致性
使用方法
- 在文字方塊輸入或貼上需要計算的內容
- 工具自動計算 SHA1 並顯示 40 位十六進位結果
- 可選:拖曳檔案計算檔案 SHA1
- 點擊複製按鈕取得雜湊值
功能特點
- 文字 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 家族的差異。
| 演算法 | 輸出 | 發布 | 安全性 |
|---|---|---|---|
MD5 | 128 位元 / 32 字元 | 1992 | 弱(2004 攻破) |
SHA-1 | 160 位元 / 40 字元 | 1995 | 弱(2017 攻破) |
SHA-256 | 256 位元 / 64 字元 | 2001 | 強(推薦) |
SHA-512 | 512 位元 / 128 字元 | 2001 | 極強 |
輸入長度對 SHA1 速度的影響
SHA1 處理速度與輸入資料量成正比。
| 輸入大小 | 本機處理時間 | 典型場景 |
|---|---|---|
10 字元 | < 1 ms | 短字串 |
1 KB | < 1 ms | 短文字文件 |
100 KB | 1-2 ms | 中等文件 |
10 MB | 30-60 ms | PDF 檔案 |
100 MB | 300-600 ms | 影片檔案 |
1 GB | 3-6 s | 大檔案 |
5 種 SHA1 典型場景
涵蓋開發、版本控制、合規、安全。
| 使用場景 | 風險等級 | 核心價值 |
|---|---|---|
| Git commit 雜湊 | 低(Git 抗碰撞保護) | 歷史相容 |
| 老舊軟體 SHA1 校驗 | 中 | 相容舊系統 |
| 教學示範 | 無 | 理解雜湊原理 |
| 密碼雜湊 | 高(不應使用) | 應改用 bcrypt / Argon2 |
| API 簽章 | 高(不應使用) | 應改用 SHA256 / HMAC-SHA256 |
Authoritative References
- NISTNIST FIPS 180-1 - SHA1 標準
- Google / CWISHAttered - SHA1 首次碰撞
- MDNMDN - SubtleCrypto.digest
- WikipediaWikipedia - SHA-1
- 安全字串比較
- 二進位轉換
- 凱薩密碼
- 摩斯密碼
- 十六進位轉換
- 影片轉 Base64
- Base64 轉影片
- 圖片轉 Base64
- Base64 轉圖片
- 文字轉 Base64
- Base64 轉文字
- 檔案雜湊校驗
- 檔案轉 Base64
- Base64 轉檔案
- 音訊轉Base64
- Base64轉音訊
- AES 加密解密
- DES 加密解密
- Base32 編碼解碼
- Base58 編碼解碼
- Base64 編碼
- Base64 解碼
- Base64 比較
- Base64 拆分
- Base64 多行合併
- Base64 格式化
- Base64 格式檢查
- Base64 批次編碼
- Base64 批次解碼
- Base64 清理
- Base64 填充處理
- Base64 長度統計
- Base64 轉十六進位
- Base64 DataURL 轉換
- Base64-Hex 互轉
- Base85 編解碼器
- HMAC 生成與驗證
- PBKDF2 金鑰派生
- MD5 雜湊
- SHA-256 雜湊
- SHA1 雜湊
- SHA512 雜湊
- JWT 工具
- HTML 實體編碼解碼
- Unicode 跳脫
- URL 編碼
- URL Safe Base64
- MIME Base64
- Java 混淆
- JS 混淆
- PHP 混淆
- Python 混淆