這款密碼產生器有什麼不同?
這是一款隱私優先、僅在瀏覽器內運作的密碼產生器。每一個隨機位元組都來自作業系統的密碼學亂數產生器,透過 crypto.getRandomValues 取得——絕不使用 Math.random。產生密碼時頁面不會發出任何網路請求,產生的值也不會離開你的分頁。打開 DevTools 的 Network 面板,點擊「產生」:它依然會保持靜默。
這款密碼產生器是如何運作的?
工具完全以 JavaScript 在你的瀏覽器中執行。沒有伺服器往返、沒有夾帶密碼的分析追蹤訊號,頁面載入後也不會再發出遠端字型請求。
- 從作業系統 CSPRNG 取種子。每一個隨機整數都從
crypto.getRandomValues(new Uint32Array(n))抽取——這與瀏覽器用於 TLS 金鑰材料和crypto.randomUUID的密碼學安全來源相同。Math.random從不被呼叫;專案全域的 grep 強制執行此規定。 - 字元集組合。隨機字元模式會將啟用的字元類別——大寫、小寫、數字、符號——串接為單一字母表。「排除易混淆字元」選項接著會移除視覺上相似的字形(
0、O、o、1、l、I、|、反引號),讓密碼在朗讀或手抄時不會產生歧義。 - 無偏差索引取樣。若以樸素方式(取餘數)將 32 位元無號整數映射到字元集索引,當字元集大小無法整除 2^32 時會產生些許偏差。本工具採用拒絕取樣:落在餘數尾段的樣本會被丟棄並重新抽取,如此一來字元集中的每個字元被選中的機率皆相等。
- 批次產生。在隨機字元模式下,你可以一次產生 1 到 50 個密碼。每筆結果會渲染為一列,並附上自己的熵估算、強度等級與複製按鈕。「全部複製」會以換行字元串接各列,方便貼到 CSV 或密碼庫匯入檔案。
- 通行短語模式。切換到通行短語模式後,頁面會在首次使用時延遲載入 EFF Short Wordlist #1(1296 個公共領域的英文單字)。五個單字的通行短語約有 51.7 位元的熵——足以應付日常帳號,而且比 9 個字元的隨機亂數串更易於記憶。完成那一次同源請求後,頁面再次保持靜默。
為什麼使用這款密碼產生器?
- 你的密碼絕不離開瀏覽器。沒有伺服器端點、沒有夾帶密碼值的分析請求、沒有遠端字型、沒有遙測。打開 DevTools、產生一個密碼,看著 Network 面板始終保持空白。
- 從結構上保證密碼學安全的隨機性。每個整數都來自
crypto.getRandomValues,並以拒絕取樣消除餘數偏差。瀏覽器密碼產生器最常見的錯誤——用Math.random作為熵來源——在這裡從結構上就不可能發生。 - 兩種模式,一個工具。隨機字元模式產生高熵字串,適合密碼管理員使用;通行短語模式則以 EFF Short Wordlist #1 為基礎,產生人類易於記憶的 xkcd 風格字串(
correct-horse-battery-staple)。兩種模式採用相同的隱私模型。 - 透明的熵。每一列產生的結果都會顯示其熵(以位元為單位)以及明確的強度標籤,讓你一眼就能看出:12 個字元的無符號字串是否真的與 5 個單字的通行短語一樣強。沒有行銷話術,只有數字。
產生密碼有哪些常見應用?
每當你需要一個全新的隨機秘密,這就是能將信任面降到最低的工具:
- 密碼管理員匯入。一次產生 50 個高強度密碼,點擊「全部複製」,貼到你的密碼庫 CSV 匯入檔。這些值從未經過任何伺服器往返,因此在產生與儲存之間沒有外洩的時間窗。
- 主通行短語。切換到通行短語模式,選 6 或 7 個單字,視需要將每個單字首字母大寫——你就有了一個無需手寫即可記住的高熵字串。6 個單字大約 62 位元的熵——遠超離線攻擊所需的門檻。
- 側專案的 API 金鑰與權杖。需要一個一次性的共享秘密作為 webhook 簽章金鑰或開發資料庫密碼?在這裡產生一個富含符號的 32 字元字串,複製一次即可,而它在傳輸中曾出現過的唯一位置,就是你自己的瀏覽器分頁內。
產生密碼的範例是什麼樣子?
將長度設為 16,保留四個字元類別全部啟用,然後點擊「產生」。字元集共有 26 + 26 + 10 + 32 = 94 個字元,因此每個產生的字元帶有 log2(94) ≈ 6.55 位元的熵。16 個字元落在大約 104.9 位元——遠超「非常強」的 80 位元門檻,以現有硬體實質上無法暴力破解。現在切換到通行短語模式,用預設的連字號分隔符選 5 個單字:cocktail-sprig-aspect-magenta-tonic 帶有 log2(1296) x 5 ≈ 51.7 位元的熵。可記憶、可輸入,而且比一般人類自選的密碼更強。
產生、複製、繼續工作。頁面從未碰過伺服器,密碼從未離開你的分頁,熵則由第一性原理計算而來。這就是我們唯一的承諾。