首頁·密碼強度

100 格密碼 — 儲存方式比長度更能改變答案

10 種字元集與 10 種長度交匯的每一格,都算出熵位數和破解所需時間。速度不是編的,用的是 hashcat 在單張 RTX 4090 上的公開實測值。

含符號的完整 ASCII 12 · 78.7 bit

  • NTLM(Windows)26136.9 年
  • MD545950.7 年
  • SHA-256343132.2 年
  • WPA2 Wi-Fi10^9.5 年
  • bcrypt10^10.6 年

一個字元能承載多少

一個字元能承載的強度是字元集大小的對數:只用數字是 3.3 位,加上小寫字母是 4.7 位,含符號的 94 個 ASCII 字元是 6.6 位。總強度等於它乘以長度,所以加長通常勝過加花樣——多一個 ASCII 字元能加 6.6 位,而從小寫擴到完整 ASCII 每個字元只多 1.9 位。

網站是怎麼存的

同一個密碼,因儲存方式不同,答案可以相差一百萬倍以上。一張 RTX 4090 每秒能試 2885 億次 NTLM、1641 億次 MD5,而 bcrypt 只有 18.4 萬次——bcrypt 是故意做慢的。所以含符號的 8 位 ASCII 密碼在用 NTLM 的地方不到三小時就破,在用 bcrypt 的地方能撐五百多年。而用哪種,輸密碼的人無從選擇。

一個韓文音節抵兩個 ASCII 字元

標準韓文區共有 2,350 個音節。把一個音節算作一個字元,它就承載 11.2 位——是 ASCII 字元的 1.7 倍。所以八個韓文音節強過十三個 ASCII 字元,又不及十四個。問題在於很多系統不接受,沒有輸入法的裝置根本打不出來。

這張表算什麼、不算什麼

這裡的時間假設密碼是**隨機選取**並從頭到尾窮舉的。人編的密碼撐不了這麼久——詞典詞、鍵盤順序、生日,以及結尾加的 ! 和 1,攻擊方會先試。「P@ssw0rd!」按九位 ASCII 算是 59 位,實際幾秒就破。反過來,顯卡多幾張,時間就除以幾。

最常見的事故不是被破解

更常見的是:從一個網站外洩的密碼,被原樣拿到另一個網站去試。哪怕要幾年才能破的密碼,只要兩處共用,弱的那邊被攻破的當天它也一起完了。比加長更優先的是**不重複使用**和開啟兩步驟驗證。

按字元集和長度查找

字元集大小 · 長度

僅數字字元集大小 10

十六進位字元集大小 16

僅小寫字母字元集大小 26

Base32字元集大小 32

小寫字母+數字字元集大小 36

大小寫字母字元集大小 52

字母+數字字元集大小 62

Base64字元集大小 64

含符號的完整 ASCII字元集大小 94

韓文音節字元集大小 2350

怎麼看這一頁

  • 每個字元的位數 = log2(字元集大小),再乘以長度就是總數。
  • 破解時間 = 組合數的一半 ÷ 每秒嘗試次數。
  • 速度取自 hashcat 在單張 RTX 4090 上的公開實測值。
  • 這些數字假設密碼是隨機的。人編的會早得多被破。
  • NTLM(Windows)2.89e+11 /s
  • MD51.64e+11 /s
  • SHA-2562.20e+10 /s
  • WPA2 Wi-Fi2.53e+6 /s
  • bcrypt1.84e+5 /s

常見問題

Q. 密碼多長才安全?

取決於怎麼存。含符號的 12 位 ASCII 是 78.7 位熵:存成 NTLM 要 2.6 萬年,存成 bcrypt 要 410 億年。減到八位,NTLM 不到三小時就破。

Q. 加長度還是加符號?

通常是長度。多一個 ASCII 字元加 6.6 位,而從小寫擴到完整 ASCII 每個字元只多 1.9 位。

Q. 用韓文會更強嗎?

每個音節 11.2 位,是 ASCII 字元的 1.7 倍。但接受的系統很少,沒有輸入法也打不出來。

Q. 這些時間是真的嗎?

它們假設密碼隨機且從頭窮舉。人編的密碼在詞典攻擊下會早得多被破。

Q. 最重要的是什麼?

不要重複使用。把外洩的密碼拿到別處去試,比真去破解常見得多。