你已經得到了一個雜湊值。它是一長串十六進位制字元,或者可能有一個奇怪的字首,例如 $2b$。您需要知道是什麼演算法建立了它——用於 CTF 挑戰、安全審計、密碼恢復,或者只是出於好奇。

這是透過長度、字符集和格式識別任何雜湊型別的權威指南。

什麼是雜湊?

雜湊是由單向數學函式生成的固定長度字串。將任何輸入(密碼、檔案、訊息)輸入雜湊演算法,您就會獲得固定大小的唯一指紋。相同的輸入總是產生相同的輸出,但您無法反轉該過程來恢復原始輸入。

雜湊函式無處不在:在資料庫中儲存密碼、驗證檔案完整性、數字簽名和重複資料刪除。

如何識別雜湊:快速方法

識別雜湊的最快方法是透過它 字元數 和 字符集。大多數雜湊值由十六進位制字元(0–9、a–f)組成,但 bcrypt 和 SHA-512 crypt 等某些演算法使用更廣泛的 Base64 字母表。

步驟一: 數一下字元數。 步驟 2: 注意字符集(僅限十六進位制,或字母數字+特殊)。 步驟 3: 檢查字首(bcrypt 以 $2b$, SHA-512 密碼開頭 $6$).

或者只是使用我們的 雜湊識別符號工具 自動識別。

雜湊識別參考表

雜湊型別 長度 字符集 字首/註釋
MD5 32 十六進位制(0-9,a-f) 無字首
SHA-1 40 十六進位制 無字首
SHA-224 56 十六進位制 無字首
SHA-256 64 十六進位制 無字首
SHA-384 96 十六進位制 無字首
SHA-512 128 十六進位制 無字首
SHA3-256 64 十六進位制 與 SHA-256 的長度無法區分
SHA3-512 128 十六進位制 與 SHA-512 的長度無法區分
NTLM 32 十六進位制 與 MD5 長度相同 — 上下文很重要
MySQL 4.1+ 40 十六進位制 有時帶有字首 *
bcrypt 60 Base64 字母表 開頭為 $2a$, $2b$, 或 $2y$
SHA-512 地穴 106 Base64 字母表 開頭為 $6$
SHA-256 地穴 63 Base64 字母表 開頭為 $5$
MD5 地穴 34 Base64 字母表 開頭為 $1$
氬氣2 可變 Base64 + $ 開頭為 $argon2id$ 或 $argon2i$
加密 可變 Base64 + $ 開頭為 $s0$
PBKDF2 可變 Base64 或十六進位制 通常帶有字首 pbkdf2_sha256$
LM 雜湊 32 十六進位制 Windows 舊版 — 兩個 16 字元的半部分
CRC32 8 十六進位制 非常短 — 4 位元組
漩渦 128 十六進位制 不太常見
RIPEMD-160 40 十六進位制 與 SHA-1 長度相同
阿德勒-32 8 十六進位制 校驗和,不是加密雜湊

識別最常見的雜湊值

MD5(32 個十六進位制字元)

命令
5f4dcc3b5aa765d61d8327deb882cf99

MD5 是您會遇到的最常見的雜湊值。 32 個小寫十六進位制字元,無字首。它被廣泛用於密碼儲存,但現在被認為在密碼學上已被破壞——它的計算速度很快,這使得暴力攻擊變得微不足道。

常見於: 舊版 Web 應用程式、檔案校驗和、CTF 挑戰、資料庫密碼轉儲。

限制: MD5 和 NTLM 都是 32 個十六進位制字元。如果您在 Windows 系統中找到 32 個字元的雜湊值,它可能是 NTLM。從網路應用程式來看,它可能是 MD5。

SHA-1(40 個十六進位制字元)

命令
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8

40 hex characters.自 2017 年以來,大多數安全用途已棄用,但在較舊的系統、Git 提交、SSL 證書(舊版)和檔案校驗和中仍然常見。

常見於: Git 物件 ID、舊版 SSL 證書、檔案驗證工具。

SHA-256(64 個十六進位制字元)

命令
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

大多數應用的當前標準。 64 個十六進位制字元。用於比特幣(雙 SHA-256)、JWT 簽名、現代密碼儲存包裝和 TLS。

常見於: 區塊鏈、API 簽名、密碼儲存(通常封裝在 PBKDF2 或 HMAC 中)、檔案完整性驗證。

SHA-512(128 個十六進位制字元)

命令
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86

128 個十六進位制字元。比 SHA-256 更強但更慢。在一些 Linux 密碼雜湊中使用(/etc/shadow)和高安全性應用。

bcrypt(60 個字元,類似 Base64)

命令
$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW

由於其結構化字首而成為最容易識別的雜湊格式:

  • $2b$ (或 $2a$, $2y$) — 演算法版本
  • 12 — 成本因子(工作因子),多少輪
  • 之後的所有內容 — 53 個字元的鹽 + 雜湊組合

bcrypt 故意慢。您無法使用 GPU 來加速它 - 這就是為什麼它是密碼雜湊的正確選擇。如果您看到以以下字元開頭的 60 個字元的字串 $2,是bcrypt。

常見於: PHP 應用程式 (password_hash()),Ruby on Rails,最現代的 Web 框架。

NTLM(32 個十六進位制字元)

命令
b4b9b02e6f09a9bd760f388b67351e2b

視覺上與 MD5 相同 — 32 個小寫十六進位制字元。 NTLM 是 Windows 的舊身份驗證雜湊。如果你正在做CTF或者滲透測試Windows系統,這些會經常出現。

如何區分MD5和NTLM: 上下文。 NTLM 來自 Windows SAM 資料庫、Active Directory 或 Mimikatz 等工具。 MD5 通常來自 Web 應用程式資料庫。

Argon2(可變長度,結構化字首)

命令
$argon2id$v=19$m=65536,t=3,p=4$c29tZXNhbHQ$RdescudvJCsgt3ub+b+dWRWJTmaaJObG

2015 年密碼雜湊競賽獲勝者。設計為記憶體硬型,使其能夠抵抗基於 GPU 和 ASIC 的攻擊。現代框架(Django 4+、PHP 8.1+ 原生)正在採用 Argon2id。

字首細分: $argon2id$ = 變體, v=19 = 版本, m=65536 = 記憶體成本, t=3 = 時間成本, p=4 = 並行性。

當長度不夠時如何識別雜湊

一些雜湊具有相同的長度和字符集:

碰撞 如何辨別
MD5 與 NTLM(32 十六進位制) 源上下文 — Windows = NTLM,Web DB = MD5
SHA-1 與 RIPEMD-160(40 十六進位制) RIPEMD-160 更為罕見; SHA-1 是安全的猜測
SHA-256 與 SHA3-256(64 十六進位制) 需要演算法後設資料或工具
SHA-512 vs SHA3-512 vs Whirlpool(128 十六進位制) 需要上下文或雜湊ID工具

當僅靠長度無法解決時,你需要:

  1. 檢查源系統(作業系統、應用框架、資料庫)
  2. 嘗試破解已知值以確認演算法
  3. 使用測試多種演算法的雜湊識別符號工具

使用雜湊識別符號工具

不要手動計算字元數,而是使用我們的 雜湊識別符號 — 貼上任何雜湊值,它將:

  • 將長度和字符集與所有已知演算法進行匹配
  • 突出顯示最有可能的候選人
  • 自動標記字首格式(bcrypt、SHA-crypt、Argon2)

這對於遇到不熟悉的雜湊格式或需要快速處理多個雜湊的 CTF 挑戰特別有用。

Real-World Scenarios

場景 1:您有一個資料庫轉儲

你找到一個 users 表,其中包含 password 包含以 開頭的 60 個字元的字串的列 $2b$。這些是 bcrypt 雜湊值。現代且正確實施——破解它們的計算成本很高。

場景 2:CTF 挑戰 — 你找到一個雜湊檔案

命令
098f6bcd4621d373cade4e832627b4f6

32 個十六進位制字元 → MD5。字串 test 雜湊為 MD5 中的該值。使用 hashcat 或 john 進行快速單詞列表攻擊將立即破解常見密碼。

命令
hashcat -m 0 -a 0 hash.txt wordlist.txt

模式 -m 0 是MD5。如果是 SHA-1,請使用 -m 100。 SHA-256 是 -m 1400.

場景三:Linux /etc/shadow

命令
$6$rounds=5000$usesomesalt$IxDD3jerizQ5s/bS3FbSsO6hMGFjfSKNBWENHyJ7FXKC4XiuT3pOlLGEBpRiuJ3QGJlyXfS4uNIaVpqEcF2b.

開頭為 $6$ → SHA-512 密碼。格式為: $id$salt$hash 其中 id=6 表示 SHA-512。

ID 演算法
$1$ MD5 密碼
$5$ SHA-256 加密
$6$ SHA-512 加密
$y$ 是的加密貨幣
$2b$ bcrypt

Hashcat 模式參考

如果您正在破解雜湊(在您有權測試的系統上),以下是最常見型別的 hashcat 模式:

雜湊型別 雜湊貓模式
MD5 0
SHA-1 100
SHA-256 1400
SHA-512 1700
NTLM 1000
bcrypt 3200
SHA-512 地穴(6 美元) 1800
MySQL 4.1+ 300
WPA/WPA2 2500

快速識別備忘單

  • 8 個字元,十六進位制 → CRC32 或 Adler-32(校驗和,非加密)
  • 32 個字元,十六進位制 → MD5 或 NTLM
  • 40 個字元,十六進位制 → SHA-1 or RIPEMD-160
  • 56 個字元,十六進位制 → SHA-224
  • 64 個字元,十六進位制 → SHA-256 或 SHA3-256
  • 96 個字元,十六進位制 → SHA-384
  • 128 個字元,十六進位制 → SHA-512、SHA3-512 或 Whirlpool
  • 60 個字元,以 $2 → bcrypt
  • 開頭為 $1$ → MD5 地穴
  • 開頭為 $5$ → SHA-256 crypt
  • 開頭為 $6$ → SHA-512 密碼
  • 開頭為 $argon2 → 氬2
  • 開頭為 pbkdf2_ → PBKDF2

立即識別您的雜湊值

使用我們的免費 雜湊識別符號工具 — 貼上任何雜湊並透過置信度分數和可能的演算法獲得即時識別。

Related tools and guides: