🔑 隨機密碼產生器
字元類型
進階規則
密碼多半不是被「猜」出來的
多數人想像的破解是駭客對著登入頁一組一組試,但真實世界的帳號淪陷,絕大多數來自撞庫(credential stuffing):某個網站外洩了帳號密碼,攻擊者拿同一組 email+密碼去試其他網站——因為大家習慣重複使用密碼。台灣近年多起電商、訂房平台個資外洩後接著出現的詐騙簡訊與盜刷,走的就是這條路。
因此密碼安全的第一原則不是「複雜」,而是每個網站都用不同的密碼。人腦記不住幾十組互不相關的強密碼,所以正確流程是:用本工具產生完全隨機的密碼 → 存進密碼管理器 → 讓瀏覽器自動填入。隨機產生器的價值正在於此——它產出的密碼不含生日、手機號碼、鍵盤順序這些字典攻擊必查的模式。
密碼熵:長度比複雜度更有威力
密碼強度可以量化為「熵」(entropy),單位是位元:字元池大小為 N、長度 L 的隨機密碼,熵 = L × log₂N。直覺版本:長度每加一個字元,破解成本乘上一倍以上;複雜度(多勾一種字元類型)只是把倍數調大一點。
| 組成 | 長度 | 約略熵 | 離線暴力破解(每秒 100 億次) |
|---|---|---|---|
| 純數字 | 8 | 27 bits | 不到 1 秒 |
| 小寫字母 | 8 | 38 bits | 約 21 秒 |
| 大小寫+數字+符號 | 8 | 52 bits | 約 6 天 |
| 大小寫+數字+符號 | 12 | 78 bits | 約 96 萬年 |
| 大小寫+數字+符號 | 16 | 105 bits | 超過宇宙年齡 |
這張表也解釋了本工具的預設值:12 字元全字元集是「離線暴力破解已不可行」的起點;高價值目標(主 email、金融、密碼管理器主密碼)建議 16 以上;API 金鑰、加密金鑰這類不用人手輸入的,直接開到 32 以上沒有理由不做。
注意:上表假設密碼是「真隨機」。若密碼含有字典單字、年份、鍵盤軌跡(qwerty、1qaz2wsx),攻擊者會先跑規則字典,實際強度遠低於表面組合數——這正是用產生器而非自己「想」密碼的原因。
NIST 現代密碼指引,和你在台灣網站遇到的規則差在哪
美國 NIST 的《SP 800-63B 數位身分指引》是目前業界引用最多的密碼標準,幾個重點顛覆了老一輩的「資安常識」:
- 長度優先於複雜度:NIST 不再建議強制「必須含大寫+數字+符號」的組成規則——因為使用者會用
Password1!這種可預測的方式應付,反而降低實際強度。 - 不強制定期更換密碼:除非有外洩證據。定期強制更換只會讓人在舊密碼後面加 1、加 2。
- 用外洩黑名單檢查:新密碼應與已知外洩密碼庫比對,擋掉
123456這類已淪陷的選擇。 - 允許貼上與密碼管理器:禁止貼上密碼的欄位反而妨礙安全實務。
台灣不少銀行與政府網站仍維持「6–12 碼、禁用特殊符號、90 天強制更換」這類與現代指引相反的規則——遇到長度上限時,把工具的長度調到該網站允許的最大值、四種字元全勾,就是該限制下的最佳解。
這個工具的亂數品質:只用 Web Crypto,不做降級
密碼產生器的安全性完全取決於亂數來源。JavaScript 的 Math.random() 是可預測的偽亂數,攻擊者若掌握內部狀態就能重現輸出,不適合任何安全用途。本工具只使用瀏覽器的 crypto.getRandomValues(作業系統級的密碼學安全亂數),並以「拒絕抽樣」消除取餘數造成的分佈偏差;若環境不支援,工具會直接報錯,而不是悄悄退回弱亂數。
- 完全在瀏覽器端執行:密碼不經過任何伺服器、不寫入 localStorage 或 cookie,關閉分頁即消失——所以產生後請立刻存進密碼管理器。
- 「每種類型至少一次」預設開啟:先從每個勾選類型各抽一字元再打亂位置,滿足多數網站的組成規則,又不留下可預測的排列。
- 排除易混淆字元:勾選後 0/O、1/l/I 不會出現,適合需要唸出來或手動輸入的場合(WiFi 密碼、裝置初始密碼);代價是熵略降,純自動填入的密碼不必勾。
常見問題
密碼管理器推薦用哪些?
Bitwarden(開源、跨平台、免費方案夠用)、1Password(付費、體驗完整)、KeePass(純本地儲存、完全免費)都是可靠選擇。不建議把密碼存在通訊軟體對話(Line 給自己的訊息不是保險箱),瀏覽器內建的密碼管理近年已大幅改善,有開同步加密的話屬可接受的起點。
批次產生 100 組的用途是什麼?
系統管理員替多個帳號初始化密碼、開發者建立測試帳號、一次替多個服務各準備一組唯一密碼。每組都是獨立抽樣,彼此毫無關聯。
為什麼長度最短只能 4?那樣不是不安全嗎?
4–8 字元適用於「非安全用途的隨機字串」,例如折扣碼、房間代碼、臨時識別碼。作為帳號密碼請至少 12 字元——工具允許短長度,但不代表建議。
產生的密碼會被記錄嗎?
不會。產生運算全部在你的瀏覽器執行,本站伺服器收不到密碼內容,也沒有任何統計或記錄機制。可以開發者工具的「網路」分頁自行驗證:按下產生鈕不會發出任何請求。