免費密碼產生器

選長度和字元種類,馬上產生高強度的隨機密碼,也可以產生好記的英文密語。

密碼只在你的瀏覽器裡產生。不會上傳,也不會被記錄。

1選擇類型

長度(4 到 128)

2產生結果

    好密碼的條件

    強度(熵)怎麼看

    熵的單位是位元,意思是「要猜幾次才猜得中」的對數:每多 1 位元,猜中所需的次數大約多一倍。隨機字元密碼的熵是「長度 × log₂(字元池大小)」。例如 16 個字元、從 87 個字元(大小寫、數字、符號)裡隨機抽,約 103 位元。頁面上的強度分級只是方便判讀的粗略參考:

    熵(位元)頁面標示適合用在
    低於 40弱不建議使用
    40 到 59普通不重要、有登入次數限制的場合
    60 到 79強一般網路帳號
    80 以上很強金融、主要信箱、密碼管理工具主密碼

    這個數字假設每個字元都是獨立隨機抽出的。因為本工具會確保勾選的每一類字元至少出現一次,實際的熵比公式算出來的略低,但差距很小。

    「好記的密語」是什麼

    密語(passphrase)是用幾個隨機英文單字串起來當密碼,例如 Lunchbox-Cactus-Frozen-Hazy-Zippy。單字比一串亂碼好記、也好在手機上輸入,只要字是隨機抽的,強度也很夠:本工具的字表有 7,776 個單字,每個字約 12.9 位元,抽 5 個字約 64 位元,抽 7 個字約 90 位元。這很適合需要「自己記住」的密碼,例如電腦開機密碼、密碼管理工具的主密碼。

    字表來源與授權:使用的是電子前哨基金會(Electronic Frontier Foundation,EFF)於 2016 年公開的 Large Wordlist for Random Passphrases,原本設計給擲骰子選字用。依 EFF 網站著作權政策(https://www.eff.org/copyright),原創內容採 CC BY 4.0 授權。姓名標示:EFF Large Wordlist, © Electronic Frontier Foundation, CC BY 4.0,未修改(只是轉成瀏覽器可直接讀取的格式)。字表原始頁面:eff.org/deeplinks/2016/07/new-wordlists-random-passphrases。

    怎麼用這個工具

    1. 選「隨機字元」或「好記的密語」。
    2. 調整長度與要用的字元(或單字數與分隔符號),結果會即時更新。
    3. 要一次產生多組,改「一次產生幾組」。按「重新產生」會全部重抽。
    4. 按每組旁邊的「複製」,直接貼到要設定的地方。建議馬上用密碼管理工具存起來。

    常見問題

    在網頁上產生密碼安全嗎?你們會看到我的密碼嗎?

    密碼是在你的瀏覽器裡用 crypto.getRandomValues 產生的,產生後只存在這個頁面的記憶體裡,不會送到任何伺服器,我們沒有記錄,也看不到。你可以在產生完之後把網路斷掉再試,功能照常運作。建議複製後直接貼進密碼管理工具或要設定的網站,不要另外存在記事本、截圖或聊天軟體裡。

    密碼要多長才夠安全?

    長度比花樣重要。一般帳號建議 16 個字元以上,銀行、主要信箱和密碼管理工具的主密碼建議 20 個字元以上,或用 5 個字以上的「好記的密語」。頁面會顯示這組密碼的熵(以位元計),數字越大,被暴力猜中的難度越高:低於 40 位元算弱,60 位元以上一般用途夠用,80 位元以上很強。

    「排除易混淆字元」是什麼?要勾嗎?

    數字 0 和大寫 O、數字 1 和小寫 l 與大寫 I,在很多字型裡長得非常像。如果密碼需要用眼睛看著輸入,例如設定電視、印表機、Wi-Fi 或唸給別人聽,建議勾選,可以避免輸入錯誤;代價是字元池少了幾個字元,熵會稍微降低,把長度多加一兩位就補回來了。純粹用複製貼上的帳號,不勾也沒問題。

    「好記的密語」模式是什麼?安全嗎?

    它是從 EFF(電子前哨基金會)公開的 7,776 個英文單字表裡,隨機抽出幾個字用符號接起來,像是 Lunchbox-Cactus-Frozen-Hazy-Zippy。每個字貢獻約 12.9 位元的熵,5 個字約 64 位元,比一般 8 到 10 個字元的混合密碼強,又比較容易記,也容易用手機輸入。前提是這幾個字完全是隨機抽的,不能自己挑「好記的」字組合。

    密碼產生好之後,要怎麼管理?

    每個網站用不同的密碼,並用密碼管理工具(瀏覽器內建的、手機系統內建的,或獨立的密碼管理軟體都可以)儲存。重要帳號再加開兩步驟驗證。不要把同一組密碼用在多個網站,因為其中一個網站外洩,其他帳號就會被拿去試。

    運作原理

    密碼全部在你的瀏覽器裡產生,不會經過伺服器,也不會儲存。亂數來源是 Web Crypto API 的 crypto.getRandomValues,這是作業系統提供、瀏覽器內建的密碼學等級亂數。把亂數換算成字元池或字表裡的位置時,程式用拒絕取樣,丟掉會造成偏差的尾端數值,確保每個字元、每個單字被抽到的機率完全相同。沒有使用 Math.random。

    其他免費工具