# 密碼產生器

URL: https://discuvr.org/password-generator/?hl=zh-hant
Last updated: 2026-11-08
MCP tool: `generate_password`

使用密碼學安全的隨機性產生強隨機密碼。選擇長度與字元類型，並以位元熵查看其強度。

強密碼是攻擊者無法猜中也無法預測的密碼，因此它必須來自同樣無法預測的來源。本工具使用 Python 的密碼學亂數產生器產生密碼，而不是多數程式語言內建、速度較快卻可預測的那種，並精確顯示破解它需要多少猜測工作量。

## 功能作用

- 每個字元與最後的打亂步驟都使用 Python 的密碼學安全亂數來源，絕不使用可預測的亂數產生器。
- 長度可選 4 到 128 個字元，大寫字母、小寫字母、數字與符號可任意組合。
- 保證每種所選類型至少出現一個字元，密碼絕不會默默漏掉你要求的類型。
- 顯示以位元計的熵（長度乘以字元集大小的 log2）與淺白的強度等級，兩者都來自固定公式，而非估計。
- 每次請求都重新產生並立即傳回，從不寫入磁碟、資料庫、快取或記錄檔。

## 運作方式

1. 設定長度並選擇要包含的字元類型。
2. 按下「產生」。
3. 複製密碼；想要另一組隨時重新產生。

## 為什麼不用一般的亂數產生器

Python 常用的 random 模組是梅森旋轉演算法（Mersenne Twister）：速度快，非常適合模擬，但只要取得它連續 624 個 32 位元輸出，就能還原其全部內部狀態，之後它產生的每個數字都可預測。本工具改為透過 Python 的 secrets 模組使用作業系統本身的密碼學亂數來源，Python 官方文件建議用它來產生密碼與安全權杖。包括打亂字元順序在內的每個隨機決定都使用它。

## 熵值代表什麼

以位元計的熵等於密碼長度乘以每個位置可能出現的不同字元數之以 2 為底的對數。例如，由全部四種類型（26 個大寫字母、26 個小寫字母、10 個數字與 26 個符號，共 88 個字元）組成的 16 位密碼約有 103 位元熵。每多一個位元，攻擊者要嘗試的密碼數量就加倍；此字元集每多一個字元約增加 6.5 位元，所以多四個字元會讓猜測工作量增加約 6000 萬倍。顯示的強度等級（弱、普通、強、非常強）來自固定的位元門檻，而非主觀判斷。

## 密碼應該多長？NIST 怎麼說

NIST SP 800-63B-4（2025）第 3.1.1.2 節要求：單獨用於登入的密碼至少 15 個字元；僅作為多因素登入的一部分時至少 8 個字元。網站還必須接受至少 64 個字元的密碼，且不得強制混用字元類型或定期更換密碼。強度來自長度：20 個小寫字母有 94 位元熵，高於四類字元組成的 12 個字元（77.5 位元）。如果網站限制長度或不接受符號，請選擇它允許的最大長度，並取消勾選「符號」。

## 使用哪些符號，以及外形相似的字元

「符號」選項從以下 26 個字元中選取：! @ # $ & * ( ) - _ = + [ ] { } ; : , . < > ? / ~ ^。不包含空格、反斜線、引號、反引號、% 和 |，因為一些舊系統會拒絕或損壞這些字元。外形相似的字元（如 0 和 O，或 l、1 和 I）不會被剔除，因此請複製貼上密碼，不要手動重新輸入。顯示的位元數假設密碼保密且唯一：在多個網站重複使用或存放在共用檔案中的密碼，實際強度低於該數字。

## 問題

**我產生的密碼會被儲存或記錄嗎？**

不會。密碼在同一次請求中產生並傳回，從不寫入磁碟、資料庫、快取或記錄檔。

**為什麼我的密碼沒有包含我選的所有字元類型？**

只要所選長度不少於所選類型的數量，就一定會包含：每種所選類型的一個字元是有保證的，不靠運氣。

**強度等級代表什麼？**

它反映以位元計的熵：低於 40 為弱，40 到 59 為普通，60 到 79 為強，80 以上為非常強。這些門檻是固定的，不是模型的判斷。

**為什麼不用我自己想的一句話？**

自己想的密碼依賴你記憶與習慣中的規律，而這正是它容易被猜中的原因。來自密碼學亂數來源的密碼沒有任何可猜的規律。

**要達到「強」或「非常強」需要多少個字元？**

這取決於你勾選了哪些字元類型，因為每多一種類型，字元集就更大。勾選全部四種類型時（88 個字元，每個約 6.46 位元），10 個字元達到「強」，13 個字元達到「非常強」。只用字母和數字、不用符號時（62 個字元）需要 11 和 14 個；只用小寫字母時（26 個）需要 13 和 18 個；只用數字時（10 個）需要 19 和 25 個。預設設定是四種類型共 16 個字元，約 103.4 位元。包含所有類型的 8 碼密碼只有約 51.7 位元，屬於「普通」。

**能產生隨機 PIN 碼或數字代碼嗎？**

可以。除了 數字 (0-9) 以外，取消勾選其他所有類型，並把長度設為 4 或以上。每個位置上每個數字出現的機率相同，包括開頭的 0，所以可能出現 0472 甚至 1111；如果銀行或門禁系統不接受重複或連續的數字，再按一次 產生 即可。強度會顯示為 弱：4 位數 PIN 約 13.3 位元（10,000 種可能），6 位數約 19.9 位元（1,000,000 種）。這對 PIN 來說很正常，因為它只有在金融卡、手機或門鎖輸錯幾次就封鎖後續嘗試的場合才安全。凡是可能被離線猜測的場合，請改用完整的密碼。

**產生的密碼能符合公司的密碼政策或當作 Wi-Fi 密碼嗎？**

以常見的辦公規則來說可以。像「至少 12 個字元，包含大寫字母、小寫字母、數字和符號」這類政策，只要勾選全部四種類型並把長度設為 12 以上，每次都能符合，因為每種勾選的類型都保證至少出現一個字元。本工具無法遵守允許符號清單、禁止重複或連續字元，或不得包含姓名之類的規則；如果系統拒絕結果，再按一次產生即可。如果系統不接受符號，取消勾選符號（例如 !@#&*）並多加 2 個字元：14 個字母和數字有 83.4 位元，高於四種類型的 12 個字元（77.5 位元）。WPA2-Personal 的 Wi-Fi 密碼必須是 8 到 63 個可列印 ASCII 字元（IEEE 802.11i-2004，Annex H.4.1；Microsoft MS-TCC 第 2.2.2.9 節）。本工具產生的全部是可列印 ASCII，所以 8 到 63 之間的任何長度都可以；20 個字母和數字（約 119.1 位元）在電視或印表機上也容易輸入。

**密碼需要每 90 天更換一次嗎?**

不需要按固定週期更換。NIST SP 800-63B-4 (2025) 第 3.1.1.2 節規定,驗證方不得要求使用者定期變更密碼,但在有證據顯示密碼已外洩時必須強制變更。強制更換往往造成容易猜到的改動,例如把 Winter2026! 改成 Spring2026!。在收到資料外洩通知、點了釣魚連結或曾把密碼告訴別人之後,請立即變更,然後在這裡產生新密碼並存放在密碼管理器中,不要在其他網站重複使用。

## 更多日常助手

- [字數統計與易讀性分析工具](https://discuvr.org/word-counter/?hl=zh-hant)
- [年齡/日期差計算器](https://discuvr.org/age-calculator/?hl=zh-hant)
- [日期差計算機](https://discuvr.org/date-difference/?hl=zh-hant)
- [百分比計算器](https://discuvr.org/percentage-calculator/?hl=zh-hant)

## 常一起使用

- [網站安全性掃描](https://discuvr.org/security-scan/?hl=zh-hant)
- [編碼 / 解碼](https://discuvr.org/encode-decode/?hl=zh-hant)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
