ToolAct工具行動

密碼生成器

生成自訂長度和字元類型的強密碼

密碼配置
416324864
大寫字母A-Z
小寫字母a-z
數字0-9
特殊符號!@#$%^&*
自訂字元使用自訂字元集
進階選項

排除容易混淆的字元,如 0O、1lI

排除易混淆字元i, l, 1, L, o, 0, O
以字母開頭便於複製貼上
點選生成按鈕建立密碼
密碼強度
批次生成
點選「批次生成」按鈕建立多個密碼
歷史記錄
暫無歷史記錄

什麼是密碼生成器?

密碼產生器會根據指定長度和字元規則建立隨機、難以猜測的強密碼。可靠的產生方式應使用加密安全隨機數,並在目標系統確實支援時才組合大寫字母、小寫字母、數字和特殊符號。強密碼能降低字典攻擊、暴力猜測和撞庫風險,但不能取代密碼管理員、每個帳號使用唯一密碼和啟用多因素驗證等安全習慣。過於複雜的密碼不應靠記憶或重複使用,而應安全儲存。對於團隊或共享系統,還需要明確輪換週期、負責人和存取權限。

使用方法

產生步驟

  1. 選擇密碼長度(建議至少 12 個字元)
  2. 勾選字元類型:大寫字母、小寫字母、數字、符號
  3. 可選擇排除容易混淆的字元,例如 0O、1lI
  4. 點選「產生」按鈕,重複操作直到滿意

密碼強度

  • 弱:少於 8 個字元或僅使用單一字元類型
  • 普通:8-11 個字元,混合字母與數字
  • 良好:12-15 個字元,包含多種字元類型
  • 強:16 個字元以上,包含所有字元類型

安全提示

  • 所有密碼皆在本機端產生,不會上傳到伺服器
  • 為不同網站使用不同的密碼
  • 使用密碼管理員安全地儲存密碼
  • 定期更換重要帳號的密碼
  • 避免在密碼中使用個人資訊

使用場景

依精確的字元規則產生密碼設定 4 至 64 字元的長度,選擇大寫、小寫、數字、符號、自訂字元集、排除字元、移除易混淆字元,以及是否必須以字母開頭。密碼在本地產生和使用——頁面從 crypto.getRandomValues 取得熵,產生的字串暫存在記憶體中直到你複製到目標應用程式,全程不會上傳到任何服務。
為帳號設定或測試批次產生使用目前規則一次產生 5、10、20 或 50 組密碼,並從批次列表中複製個別結果。簡單、中等、強壯和 PIN 等預設方案讓你在正式憑證和測試資料之間快速切換。批次列表中的每個值都在本地產生和使用,因此同一個工作階段可以同時產出一次性測試資料和正式帳號密碼,無一經過網路傳輸。
保留簡短的本地產生歷史最近產生的密碼會連同時間一起儲存在 localStorage 中,可從頁面清除。這在設定工作階段中很方便,但也意味著在共用機器上清除列表很重要。由於每筆紀錄都在本地產生和使用,歷史檔案是唯一存在的複本——透過清除按鈕移除後,該值確實從裝置上消失了。
產生好記的口令式密碼停用符號、將長度設在 20 左右,只讓小寫和數字組合,使結果更接近口令風格。仍然建議用密碼管理員儲存——長字串本來就不是為了記憶設計的。隨機來源留在瀏覽器分頁中,因此同一個產生器可以在離線或受限防火牆的工作站上使用。
建立符合目標密碼原則的測試資料設定與正式環境驗證器相同的長度、字元類別和排除規則,然後批次產生 20 至 50 組用於 QA、註冊表單或資料外洩模擬。產生器不會對真實系統進行驗證,因此請再次確認原則本身。由於每筆測試資料都在本地產生和使用,同一個頁面可以產出數千組合規的測試密碼,而不會透過網路呼叫洩漏原則或產生的值。

技術原理

密碼生成器從 crypto.getRandomValues(new Uint32Array(n)) 取得隨機性,該函式以來自作業系統熵池的加密安全偽隨機值填充型別陣列(Linux 上為 getrandom、Windows 上為 BCryptGenRandom、macOS/iOS 上為 SecRandomCopyBytes)。這是 W3C Web Cryptography API 定義的 CSPRNG——不像 Math.random(),V8 中使用 xorshift128+ 演算法,被明確記載為非加密且可從少量輸出樣本預測。 字元池由使用者選取的字元類別組成:大寫字母(26 個字母 A-Z)、小寫字母(26 個字母 a-z)、數字(10 個字元 0-9)和特殊符號(32 個字元 !@#$%^&*()_+-=[]{}|;:,.<>?),最大池大小為 94 個字元。自訂字元集或排除清單(包括移除 i、I、l、L、1、o、O、0 的易混淆字元過濾器)可進一步調整字元池。每個密碼字元透過 array[i] % pool.length 選取,由於 CSPRNG 輸出在 32 位元上均勻分佈,且模偏差(|pool| 不能整除 2^32)對 256 個字元以下的池可忽略不計——偏差低於 0.00000006%,遠低於任何實際關切。 密碼強度以搜尋空間大小衡量:對於大小為 C 的字元池和長度 L 的密碼,可能的密碼數量為 C^L。以位元表示的熵為 log2(C^L) = L × log2(C)。對於啟用所有四種字元類別(C=94)的 16 字元密碼,產生 94^16 ≈ 4.4 × 10^31 種組合,約 105 位元的熵。以假設的每秒 10^12 次猜測速率(大約是大型 GPU 叢集對 NTLM 等快速雜湊的吞吐量),窮舉搜尋大約需要 4.4 × 10^19 秒——遠超宇宙的年齡。此模型假設攻擊者必須測試每種組合(無字典或基於模式的捷徑),且密碼使用 bcrypt 或 Argon2id 等緩慢加鹽雜湊演算法而非明文儲存。 NIST SP 800-63B 建議使用者自選密碼最少 8 個字元,機器產生的憑證至少 6 個隨機字元,並記錄字元集。生成器 4–64 字元的長度範圍涵蓋了從 PIN 碼到高熵機器憑證的所有場景。以字母開頭的選項確保第一個字元從 [A-Za-z] 中選取,滿足要求密碼以字母開頭的舊系統需求。

  • CSPRNG 來源:crypto.getRandomValues() 從作業系統核心的 CSPRNG 拉取熵(getrandom/BCryptGenRandom/SecRandomCopyBytes)——不像 Math.random()(xorshift128+),它不可預測、不可由頁面播種,適用於憑證產生。
  • 字元空間數學:啟用全部四種類別時,池大小為 94;每個字元的熵為 log2(94) ≈ 6.55 位元。16 字元密碼帶有約 105 位元的熵;長度加倍到 32 則提升至約 210 位元。
  • 模選擇:array[i] % pool.length 將 32 位元 CSPRNG 輸出映射到字元索引——對 256 字元以下的池,偏差低於 6 × 10^-8 %,在密碼學上可忽略不計。
  • 暴力破解抵抗模型:以每秒 10^12 次猜測(GPU 叢集規模),16 字元、94 符號的密碼需要約 10^19 秒才能窮舉——但這假設使用快速雜湊;cost factor 為 12 的 bcrypt 將攻擊者降至約每秒 10^4 次猜測,使即使是 8 字元的密碼也能保持韌性。
  • 易混淆字元排除:過濾器移除 {i, I, l, L, 1, o, O, 0}(8 個字元)——這將池從 94 減少到 86,每個字元損失約 0.6 位元的熵,對於手動轉錄場景的可用性提升而言是可以接受的。
  • NIST SP 800-63B 合規:該標準要求機器產生的金鑰最少 6 個隨機字元,並建議記錄字元空間——生成器的預設方案(簡單 8 字元、強壯 20 字元)對應不同的保證等級。
  • localStorage 歷史記錄:最近 10 個產生的密碼持久化在 window.localStorage 中,其作用域限於來源和瀏覽器設定檔——清除歷史記錄會從儲存中移除它們,但磁碟級取證工具可以恢復,因為 localStorage 在瀏覽器設定檔目錄中以明文 SQLite 資料庫形式儲存。

範例

強密碼(混合字元類別)

Kx9#mP2$vL7@nQ4!  -  16 個字元,涵蓋全部四類(大寫/小寫/數字/符號)
強度:極高;即使每秒嘗試 100 億次,暴力破解也需要數百年

PIN 碼(4 位數)

8527  -  4 位數字
強度:共 10,000 種組合;僅適合搭配速率限制與鎖定機制的裝置解鎖,不適用於線上帳號

密碼強度比較

8 字元、僅小寫     : 26^8      ≈ 2.08e11 種組合
8 字元、混合類別   : 94^8      ≈ 6.10e15 種組合
16 字元、混合類別  : 94^16     ≈ 3.7e31 種組合
說明:每多一個字元,金鑰空間就乘以 94,而非乘以 8——長度比類別數更重要

常見問題

密碼是在我的瀏覽器裡產生的嗎?

是的。本頁使用 Web Crypto API 的 crypto.getRandomValues,可提供加密強度足夠的隨機位元組。密碼絕不會離開你的裝置,不會被記錄,也不是由任何決定性種子推導而來。如果想再保險一點,可以重新整理頁面以開啟一段新的熵序列。

我該選什麼長度與字元組合?

對於線上帳號,現在的最低標準是 16 個字元以上,並包含大寫、小寫、數字與符號。對於主密碼(密碼管理員、加密金鑰)建議 20 個字元以上,或 6 至 7 個單字組成的通行短語。長度過了某個門檻後,比字元集複雜度更重要。

為什麼有些網站不接受我剛剛產生的密碼?

有些網站仍有令人意外的限制:最大長度(常見是 12 至 20)、不允許符號、只允許特定符號,或不允許空白。本頁提供字元類別的開關讓你能配合規則。同時也建議向那些網站反應——這類政策反而會削弱安全性。

是否會刻意避開某些字元?

若啟用「避免相似字元」選項,產生器會排除 0/O、1/l/I 這類在紙本或便條紙上抄寫時容易看錯的組合。如果只在數位環境貼上使用,可以關閉此選項以取得最大熵。

長隨機密碼比通行短語更安全嗎?

在熵相同時,兩者破解難度一樣。一組 16 字元的混合密碼,大致等同於從 2000 字詞清單裡隨機挑出的 6 字通行短語。通行短語比較容易輸入與記憶;純隨機字串則比較適合從密碼管理員貼上使用。視用途選擇即可。

可以把這個拿來當密碼管理員的主密碼嗎?

可以——這裡使用的隨機來源就是瀏覽器產生 HTTPS 金鑰時所用的同一個 Web Crypto API。不過若是極高風險的機密(主金鑰、復原碼),有些人會選擇丟骰子(diceware)或使用離線工具,純粹為了把瀏覽器從信任鏈中完全移除。

我可以把產生的密碼存在這裡嗎?

不行。本頁不會儲存密碼;請立刻把它複製到密碼管理員(1Password、Bitwarden、KeePass 或瀏覽器內建管理員)。一旦關閉頁面或重新整理,密碼會永久消失。