實用工具
輸入
結果
結果會顯示在這裡。「至少 8 碼,包含數字和符號」這種規則會把 P@ssw0rd1 判為強密碼,但它恰恰是所有破解工具最先嘗試的那一批。zxcvbn 最初由 Dropbox 開發(dropbox/zxcvbn,16k star),它像攻擊者一樣思考:在密碼中找出字典單字、人名、鍵盤連按、日期、重複片段和字母替換(l33t),再算出這種結構實際還剩多少次猜測。本頁執行的是仍在維護的 TypeScript 移植版 zxcvbn-ts(zxcvbn-ts/zxcvbn,MIT),載入了常見密碼與英文字典。你輸入的內容不會離開頁面:沒有任何網路請求,也不查詢外洩資料庫。
它是怎麼運作的
- 把密碼拆成最容易猜中的一串模式,每一段的猜測次數相乘得到總數,以 10 的次方顯示。
- 0–4 分由總猜測次數決定:少於 10^3 為 0 分,少於 10^6 為 1 分,少於 10^8 為 2 分,少於 10^10 為 3 分,更多則為 4 分。
- 破解時間分別假設:每小時 100 次(有限速的登入表單)、每秒 10 次(未限速)、每秒 1 萬次(資料庫外洩且以 bcrypt/scrypt 儲存)、每秒 100 億次(資料庫外洩且以無鹽快速雜湊儲存,用 GPU 破解)。
- 在「情境字詞」欄填入你的名字、使用者名稱或網站名稱,zxcvbn 會把它們當成攻擊者針對這個帳號最先嘗試的字詞。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具會接觸金鑰與憑證,因此任何一次執行都不會被儲存,連你自己的歷史裡也不會有。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- 該看哪一個破解時間?
- 看與密碼儲存方式相對應的那個。在管理完善的網站上,「離線、慢速雜湊」是資料庫外洩後最實際的情境。「離線、快速雜湊」適用於儲存不當的密碼(無鹽 MD5、SHA-1),以及可以直接離線攻擊的東西,例如加密的 ZIP 檔或 Wi-Fi 交握封包。
- 看起來很亂的長密碼為什麼分數很低?
- 因為在 zxcvbn 眼中它並不隨機。1qaz2wsx 這類鍵盤走位、倒寫的單字、年份、重複片段、用 @ 取代 a 這類替換,它都有建立模型,每一種只需要攻擊者付出很少的猜測次數。輸出中的「matched patterns」會列出究竟是哪一段被辨識出來。
- 會檢查密碼是否已經外洩嗎?
- 不會,這是刻意的設計。外洩檢查需要向 Have I Been Pwned 之類的服務查詢雜湊前綴,那就是一次網路請求,而本頁不發出任何請求。不過 zxcvbn 內建的常見密碼清單能離線辨識出外洩最多的那些密碼。
- 對拼音或中文密碼準確嗎?
- 準確度會下降。這裡載入的是常見密碼清單以及英文單字、人名字典,不在其中的拼音音節或中文詞語會被當作隨機字母計算,估計值可能過於樂觀。像 woaini 或名字拼音加上生日這類組合,即使拿到不錯的分數,也請保持懷疑。
- 「guesses 10^x」是什麼意思?
- 以常見模式進行攻擊時,預計需要的嘗試次數,以 10 的次方表示。對於人為設定的密碼,它比「熵有多少位元」更有參考價值,因為它反映的是實際破解工具的猜測順序,而不是字元集的大小。
背後的開源專案
本工具執行在 zxcvbn-ts/zxcvbn 之上,以 MIT 授權發布。如果你需要在自己的程式裡實作同樣的能力,直接用這個函式庫。
zxcvbn-ts/zxcvbn也常被稱作
- 密碼強度檢測
- 密碼強度測試
- 密碼安全檢查
- zxcvbn
- 密碼破解時間
- 弱密碼檢測