隨機密碼產生器

加密安全的密碼,在你的裝置上產生。

設定

這個密碼產生器的運作原理

本頁每一個密碼都由瀏覽器的 Web Crypto API(crypto.getRandomValues)產生,這與產生 TLS 金鑰和加密權杖所用的亂數來源相同,而不是許多簡易工具依賴的、可預測的 Math.random()。產生器採用拒絕取樣,保證所選字元集中每個字元出現的機率完全相等;同時確保每個勾選的字元組至少出現一次,然後對結果洗牌,避免這些保證出現的字元落在可預測的位置。

因為產生完全在你的裝置上進行,密碼不會被傳輸、記錄或儲存在任何地方。你可以載入本頁後中斷網路,繼續產生密碼。

如何選擇一個好密碼

長度比其他任何因素都重要。一個由字母、數字與符號組成的 16 位密碼大約有 100 位元的熵,遠超出任何離線暴力破解的能力範圍。對於限制特殊字元的服務,保留字母與數字但把長度提高到 20 位以上,可以獲得同等強度。密碼下方的熵值計算方式為 長度 × log2(字元集大小),讓你能客觀地比較不同設定,而不是靠猜。

當你需要把密碼唸出來或從螢幕上抄寫時,勾選「排除易混淆字元」,它會去掉在很多字型中容易混淆的 0、O、1、l、I 與 |。需要同時建立多個帳號時可以一次產生多個密碼,並把它們全部存到密碼管理器中,而不是重複使用同一個。

為什麼隨機密碼優於好記的密碼

人類選擇的密碼來自一個很小且可預測的空間:字典詞、人名、日期、鍵盤規律以及 a→@ 這類簡單替換。破解工具會優先嘗試這些,大多數人為選擇的密碼很快就會被攻破。均勻隨機的字串沒有任何這類結構,攻擊者唯一的辦法就是窮舉所有組合。把隨機密碼與密碼管理器和兩步驟驗證結合使用,你的帳號就能抵禦真正常見的攻擊:撞庫、資料庫外洩,以及針對重複使用密碼的釣魚。

背景:從密碼到密碼管理器

電腦密碼可追溯到 1961 年 MIT 的 CTSS 系統,之後幾十年的建議一直是「要好記」。當攻擊者可以對外洩的雜湊庫每秒嘗試數十億次猜測後,這一切改變了:NIST 2017 年的指南(SP 800-63B)放棄了強制複雜度規則和定期更換,轉而強調長度、唯一性以及對照已外洩密碼清單檢查。現實後果是人腦記不住幾十個互不相同的 16 位字串,所以這類產生器的正確用法是搭配密碼管理器——由它保存、自動填入並跨裝置同步。

應用領域

除了註冊帳號,這裡產生的隨機字串還可以用作 API 金鑰和 Webhook 簽章金鑰、Wi-Fi 密碼(再做成一張 Wi-Fi QR Code)、.env 檔案裡的資料庫和 SMTP 憑證、新員工到職的臨時密碼、壓縮檔和磁碟映像的加密通關密語,以及腳本裡的一次性權杖,包括 HMAC 簽章所用的金鑰。用於資料庫 URL 或 Basic 認證標頭時,注意 @、:、/ 這類符號必須做百分號編碼,或者乾脆不含符號、用更長的長度補足。當金鑰必須放進設定檔或請求標頭時,先做 Base64 編碼可以保證它在一行之內。

常見問題

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

在本頁是安全的:產生使用瀏覽器的加密亂數產生器,且不向任何地方傳送資料。你可以中斷網路來驗證——工具照常運作。

密碼應該多長?

一般帳號至少 12 位;電子郵件、銀行以及任何能用來保護其他帳號的服務至少 16 位。當網站限制符號時,用額外的長度來補償。

熵值代表什麼?

熵(位元)衡量攻擊者平均需要猜多少次。每增加 1 位元,工作量加倍。超過 80 位元的密碼在目前硬體下已無法被離線暴力破解。

產生器會記住我的設定嗎?

你的選項(長度、字元組)會儲存在瀏覽器的本機儲存空間中,下次開啟自動還原。產生的密碼本身絕不會被儲存。

可以用來產生通關密語或 PIN 碼嗎?

產生數字 PIN 時只勾選「數字」並設定長度即可。本工具產生的是字串;以單字為基礎的通關密語請使用專門的 diceware 詞表。

關於這個工具的文章

部落格 →