跳至主要內容
Lizely

密碼產生器

在瀏覽器中產生強韌的隨機密碼,所有運算皆在本機進行,不會上傳任何內容。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.使用滑桿或數值框設定長度(越長越強——16 以上是良好預設)。
  2. 2.切換要包含的字元型別:大寫、小寫、數字、符號,並可選擇排除易混淆的字元,如 0、O、1 與 l。
  3. 3.閱讀強度與熵的估計值,然後點選複製——或點選產生新密碼以取得全新結果。

關於密碼產生器

密碼產生器會根據你選擇的字元型別組合產生隨機字串,讓你再也不必重複使用容易猜測的密碼。此工具完全在瀏覽器中運作,並使用加密安全的隨機數產生器(CSPRNG)——平臺的 crypto.getRandomValues——來產生每一個密碼,而非 JavaScript 的 Math.random。這個區別至關重要:Math.random 運算快速但不具加密安全性,且其輸出可從先前值預測,因此基於它的密碼實際上所擁有的隨機性遠低於其長度顯示的數值。CSPRNG 的設計目標就是不可預測,這正是秘密應具備的特性。

強度取決於熵,以位元為單位衡量。熵等於長度乘以池子大小(可用不同字元數量)的以 2 為底的對數。當啟用大寫、小寫、數字和符號時,池子大小為 86 個字元,因此每個字元約增加 6.4 位元。一個由該池子產生的 12 字元密碼約有 77 位元的熵;一個 16 字元的密碼則約為 103 位元。作為一個簡單的規則,少於 60 位元屬弱,60 至 100 屬中等,而 100 以上則能有效抵抗離線暴力破解攻擊。最關鍵的優勢在於長度:增加字元會讓熵以指數級增長,遠快於切換字元集合,因此長度足夠的語句密碼可以擊敗短且充滿符號的密碼。

字元選擇的均勻性是一項細微但真實的安全考量。將原始 32 位元的隨機數直接對應到字元集合上,若使用簡單取模運算,會產生取模偏誤——當集合大小無法被 2^32 均整時,部分字元會被選擇的頻率略高,導致真實熵減少,輸出變得更可預測。此產生器使用拒絕取樣法:任何會落入偏誤餘數範圍的隨機值將被捨棄並重新生成,因此每個字元都有完全相等的選擇機率。同時保證每個選擇的字元型別至少出現一次,然後使用 Fisher–Yates 演算法對結果進行洗牌,以確保這些保證出現的字元不會固定在某個位置,避免攻擊者能透過模式進行攻擊。排除如 0、O、1 和 l 這類易混淆的字元,雖然會略微減少熵,但能讓密碼更易閱讀與手打。

NIST (SP 800-63B) 和 OWASP的現代指南支援長密碼或密碼,而不是強制複雜性規則,並建議檢查已知的破壞密碼列表.實際的取away是一個長,隨機,獨特的密碼,為每個網站儲存在密碼管理器,而不是記得或重用.因為產生發生在本機,你的密碼從來沒有透過網路傳輸,寫到伺服器日誌,或儲存在任何地方.。

方法與來源

密碼在瀏覽器端以平臺的CSPRNG(crypto.getRandomValues)產生,字元以拒絕取樣法均勻抽取以消除取模偏誤,每個選擇的字元型別至少出現一次,結果再以Fisher–Yates演算法洗牌。強度以夏農熵(Shannon entropy)表示,單位為位元,計算公式為長度 × log2(池子大小)。

常見問題

這些密碼安全嗎?有沒有資料傳送到伺服器?
不會有任何資料離開你的裝置。所有密碼皆在瀏覽器中本機使用加密安全的隨機數產生器(crypto.getRandomValues)產生,從未上傳、記錄或儲存。
我的密碼應該有多長?
越長越安全,因為熵與長度成正比。所有字元型別啟用時,12 字元約有 77 位元,16 字元約有 103 位元。對於重要帳戶,建議長度至少為 16(或 100 位元以上),並為每個網站使用獨特密碼。
為什麼要使用產生器,而不是自己想一個?
人類選擇的密碼會集中在可預測的模式上,這些模式正是攻擊者會利用的漏洞。一個以加密安全隨機數生成器(CSPRNG)為基礎、並具無偏字元選擇的產生器,能產生真正隨機、高熵的字串,遠比猜測或暴力破解困難得多。

編碼與加密 使用指南

查看全部