跳到主要內容

密碼產生器

產生高強度隨機密碼,可選長度與字元類型,加密級亂數。

強度:

線上密碼產生器

重複使用或太短的密碼是帳號被盜的頭號原因。這個密碼產生器用瀏覽器加密級亂數,產生難以猜測的高強度隨機密碼,可自訂長度與字元組成,而且完全在本機執行,不會外傳。

如何使用

  1. 選擇密碼長度。
  2. 勾選要包含的字元類型(大寫、小寫、數字、符號)。
  3. 按「產生」,再一鍵複製到密碼管理器。

安全建議

  • 每個網站用不同密碼,搭配密碼管理器。
  • 重要帳號額外開啟兩步驟驗證(2FA)。
  • 不要把密碼存在純文字檔或聊天訊息裡。

與其記難記的亂碼,不如產生長密碼交給管理器

最實際的用法,是幫每一個網站各產生一組又長又隨機的獨立密碼,徹底告別「所有帳號共用同一組」的壞習慣——這樣就算其中一個網站外洩,其他帳號也不會跟著淪陷。有個常見誤解要澄清:長度比複雜度更重要。一串夠長的隨機字,往往比只有 8 碼、混了一堆特殊符號的密碼更難破解,也更耐得住暴力猜測。還有一點:產生出來的密碼別想用腦袋記,也別存進純文字檔,請搭配密碼管理器統一保存與自動填入,才不會為了方便又走回頭路。

「Strong」這兩個字憑什麼?

憑算術,而且你可以自己算。頁面預設是長度 16、字元池 62,強度顯示 Strong,因為 16 × log2(62) 約等於 95 bits。把符號也打開,池會到 87(26 + 26 + 10 + 25 個符號)。密碼本身隨機、不可重現;可查證的是這個熵。一個不告訴你池有多大的產生器,你沒辦法驗證它的強度宣稱。

這裡的隨機性從哪裡來

隨機來源
crypto.getRandomValues() —— 瀏覽器的密碼學隨機產生器,不是 Math.random()
會離開你的裝置嗎
不會:密碼在本機產生,不會被送到任何地方
會被儲存嗎
不會:不寫入伺服器,也不留紀錄

真正重要的其實是隨機來源這一段。Math.random() 的可預測程度足以讓人重建由它產生的密碼;crypto.getRandomValues() 不會,而這一頁用的就是後者。在那之後,長度的作用遠大於刻意用奇怪的字元:多加一個字元是把搜尋空間乘上一輪,而把一個字母換成符號幾乎沒動到它。產生器唯一辦不到的事,是幫你記住結果——這才是密碼管理器真正的理由。

密碼是隨機的,強度是算出來的

頁面預設設定,以及那個評級背後的數字。

輸入
(page defaults: length 16, upper + lower + digits)
輸出
length        16
character pool 62
entropy       ~95 bits
rating        Strong

密碼本身不可能重現,但強度可以:熵 = 長度 × log₂(字元池),所以 16 × log₂(62) ≈ 95 位元。這個你拿計算機就能核對。評級門檻也是固定的 —— 低於 45 位元算弱、低於 75 算普通、再上去算強。打開符號會讓字元池變大、多幾個位元;而加長度加得多得多。

常見問題

這些密碼安全嗎?
安全。使用瀏覽器原生的 crypto.getRandomValues() 加密級亂數產生,並在你的裝置本機完成,不會上傳或儲存。
密碼要多長才夠?
一般帳號建議至少 16 字元並混合大小寫、數字與符號。越長越難被暴力破解;重要帳號可用 20 字元以上。
我該重複使用密碼嗎?
不要。每個網站用不同的密碼,並搭配密碼管理器保存,才能避免一個網站外洩就連累其他帳號。

延伸閱讀

如何建立強密碼(以及真正管理好它們) →

嵌入此工具

把這個工具免費放進你的網站或部落格 —— 複製下面的程式碼貼上即可(內含一條回到本站的連結)。