🔑 隨機密碼產生器

範圍 4 – 256(預設 12)

字元類型

進階規則

預設 1,最多 100

 密碼多半不是被「猜」出來的

多數人想像的破解是駭客對著登入頁一組一組試,但真實世界的帳號淪陷,絕大多數來自撞庫(credential stuffing):某個網站外洩了帳號密碼,攻擊者拿同一組 email+密碼去試其他網站——因為大家習慣重複使用密碼。台灣近年多起電商、訂房平台個資外洩後接著出現的詐騙簡訊與盜刷,走的就是這條路。

因此密碼安全的第一原則不是「複雜」,而是每個網站都用不同的密碼。人腦記不住幾十組互不相關的強密碼,所以正確流程是:用本工具產生完全隨機的密碼 → 存進密碼管理器 → 讓瀏覽器自動填入。隨機產生器的價值正在於此——它產出的密碼不含生日、手機號碼、鍵盤順序這些字典攻擊必查的模式。

 密碼熵:長度比複雜度更有威力

密碼強度可以量化為「熵」(entropy),單位是位元:字元池大小為 N、長度 L 的隨機密碼,熵 = L × log₂N。直覺版本:長度每加一個字元,破解成本乘上一倍以上;複雜度(多勾一種字元類型)只是把倍數調大一點

組成長度約略熵離線暴力破解(每秒 100 億次)
純數字827 bits不到 1 秒
小寫字母838 bits約 21 秒
大小寫+數字+符號852 bits約 6 天
大小寫+數字+符號1278 bits約 96 萬年
大小寫+數字+符號16105 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 字元——工具允許短長度,但不代表建議。

產生的密碼會被記錄嗎?

不會。產生運算全部在你的瀏覽器執行,本站伺服器收不到密碼內容,也沒有任何統計或記錄機制。可以開發者工具的「網路」分頁自行驗證:按下產生鈕不會發出任何請求。