產生內容
產生隨機密碼、易記的密碼片語或數字 PIN,並查看它們有多少位元熵,以及暴力破解需要多長時間才能猜中。所有計算都在你的瀏覽器中使用系統的加密亂數產生器完成:你產生或輸入的任何內容都不會傳送到伺服器。
4 到 128 個字元
例如你的系統不接受的符號
結果
評估你自己的密碼
在你的瀏覽器中分析,不會被儲存,也不會出現在分享連結中

運作方式

隨機產生的密碼強度並不取決於它「看起來多複雜」,而取決於產生器能從多少種可能的組合中進行選擇。這個數量以熵的位元數表示:每多一位元,攻擊者的工作量就翻一倍。一個混合小寫、大寫、數字和符號的 20 位密碼來自 94 個字元的字母表,約有 131 位元;同樣的字母表只用 8 位時降到 52 位元,GPU 叢集幾天就能窮舉完。

密碼片語以單字取代字元。本工具使用 EFF 長詞表,共 7776 個單字(6⁵,即五顆骰子的組合數),因此每個單字增加 12.9 位元。五個單字共 64.6 位元,相當於 10 個完全隨機的字元,但更容易記憶和輸入,這對密碼管理器的主密碼或磁碟加密尤為關鍵。

所有內容都在你的瀏覽器中透過作業系統的加密亂數產生器 crypto.getRandomValues 產生,並使用拒絕取樣確保任何字元出現的機率都不比其他字元高。產生的密碼和你在最後一張卡片中評估的密碼都不會離開你的裝置,被評估的密碼也不會儲存在分享連結中。

範例

20 · a-z A-Z 0-9 !@#…≈ 131 bits20 × log₂(94)。即使每秒嘗試 100 億次,遍歷一半組合也需要約 4.6 × 10²¹ 年。
5 × EFF≈ 64,6 bits5 × log₂(7776)。面對快速雜湊,一塊 GPU 平均約需 45 年;如果網站用 bcrypt 儲存密碼,則需要 4500 萬年以上。
8 · a-z A-Z 0-9 !@#…≈ 52 bits一旦快速雜湊外洩,八位字元就不夠了:以每秒 100 億次計算,大約 85 小時就能遍歷一半空間。
PIN · 61 000 000 · ≈ 19,9 bitsPIN 之所以安全,只是因為裝置或銀行限制了嘗試次數。每小時 100 次時,嘗試一半組合約需 208 天;若沒有限制,則轉瞬即破。

使用情境

  • 為每個帳號建立唯一的密碼,並儲存在密碼管理器中。
  • 為需要憑記憶輸入的內容選擇密碼片語:管理器主密碼、磁碟加密或電腦登入。
  • 為設定檔和密鑰管理器產生服務憑證、API 金鑰或資料庫密碼。
  • 為新使用者批次產生初始密碼,排除易混淆字元,以便口述或列印閱讀時不出錯。
  • 去掉引號、反斜線等不被接受的符號,以適應規則奇特的系統。
  • 在決定是否更換之前,檢查你正在使用的密碼是否容易被預測。

常見問題

密碼需要多少位元?

對於有嘗試次數限制的網站帳號,60 位元綽綽有餘。如果密鑰可能遭受離線攻擊,例如密碼管理器的主密碼或保護加密檔案的金鑰,應以 80 位元或更高為目標。超過 128 位元就沒有實際意義了:任何可以想像的攻擊者都已無法企及。

長密碼更安全還是帶符號的密碼更安全?

長密碼。把可用字元從 62 個增加到 94 個,也就是加入符號,每個字元只增加 0.6 位元;而多加一個字元就能增加 6 位元以上。因此 NIST 在 SP 800-63B 指南中要求網站接受長密碼,並停止強制「至少包含一個符號」之類的組成規則。

為什麼密碼片語使用英文單字?

因為 EFF 詞表是專為密碼片語精選的:都是常用字,沒有冒犯性詞彙,易於輸入,而且沒有任何一個單字是另一個單字的前綴,因此不加分隔符號拼接時也不會產生歧義。安全性不取決於語言,而取決於詞表的大小和選擇是否隨機;即使攻擊者知道整個詞表,每個單字仍需嘗試 7776 種可能。

為什麼評估結果與熵值不同?

因為兩者衡量的東西不同。熵適用於隨機產生、產生過程確切已知的密鑰。人編出來的密碼幾乎從來不是隨機的:「Argentina2024!」有四類共 14 個字元,但它是一個字典單字加一個年份再加結尾的符號,正是破解程式最先嘗試的組合。評估器會尋找這些模式,估算實際需要多少次嘗試。

在網頁上產生密碼安全嗎?

只要計算在你的瀏覽器中進行且不傳送任何內容,就是安全的,本工具正是如此:開啟開發者工具,可以看到網路面板沒有記錄任何資料傳送;唯一的下載是你第一次要求密碼片語時的詞表。儘管如此,對於最關鍵的憑證,最好還是讓你要儲存它們的密碼管理器直接產生,這樣密碼就不會經過剪貼簿。

為什麼要排除易混淆字元?

因為在許多字型中,0 和 O,或 1、l 和 I 幾乎一模一樣,需要從紙上讀取或透過電話口述的密碼最後會被抄錯。排除它們會讓字母表和每個字元的熵略微減少,只需把長度增加一兩個字元即可彌補。