安全密碼產生器(密碼學亂數、無偏差)

使用密碼學安全亂數(crypto.getRandomValues)在瀏覽器中產生無偏差的隨機密碼。可設定長度、字元類型、排除易混淆字元,並顯示熵值。

  • 在瀏覽器內處理(不上傳)

8~128 個字元

1~100 組

使用的字元類型

每組密碼都一定包含所選的每種字元至少 1 個(以不會造成偏差的方式挑選)。

排除的字元:0 O o 1 I l | ` ' "

產生的密碼

可用字元
94 種
熵值(每組密碼)
130.9 位元
強度參考
非常強

熵值表示即使攻擊者知道這些設定(長度與字元類型),以暴力破解猜中密碼所需的次數(以 2 的次方表示)。參考:未滿 50 位元為弱,75 位元以上為強,100 位元以上為非常強。

正在產生…

密碼只在這台裝置的瀏覽器中產生,不會儲存、傳送或記錄。關閉頁面後就會消失,要使用的密碼請存進密碼管理工具。

使用方式

  1. 輸入密碼長度(8~128 個字元)與產生數量(1~100 組)。
  2. 選擇要使用的字元類型(英文大寫、英文小寫、數字、符號),需要時可排除容易混淆的字元。
  3. 按「複製」使用顯示的密碼;按「重新產生」可產生新的一批密碼。

常見問題

使用哪一種亂數?

使用瀏覽器的 crypto.getRandomValues(密碼學安全亂數產生器),並以拒絕取樣逐字挑選,不會產生取餘數造成的偏差。完全不使用 Math.random。

一定包含所選的每種字元,為什麼仍然沒有偏差?

每個字元都從全部可用字元中平均挑選;若候選密碼缺少任何一種所選類型,就整組捨棄重新產生。因此所有符合條件的密碼出現機率都相同,不會像「先放入各類型各 1 個字元再打亂順序」那樣偏向字元較少的類型。

哪些是容易混淆的字元?

共 10 個:數字 0 與英文字母 O、o,數字 1 與英文字母 I、l,直線 |,以及不易分辨的引號(` ' ")。排除後可用字元變少,相同長度下熵值會略為降低。

熵值是怎麼計算的?

以排容原理精確計算符合設定的密碼總數,再取以 2 為底的對數。這是假設攻擊者知道長度與字元類型時的數值。

產生的密碼會被儲存或傳送嗎?

不會。密碼只在此頁面中產生,不會傳送到伺服器,也不會儲存在瀏覽器、放進網址或寫入紀錄。

注意事項與限制

  • 你輸入的內容只在此頁面處理,不會傳送到 YUCTS 的伺服器。
  • 安全性也取決於使用方式:請勿在多個服務重複使用同一組密碼,並盡量啟用兩步驟驗證。
  • 關閉頁面後產生的密碼就會消失,要使用的密碼請自行存入密碼管理工具。
  • 部分服務會限制可用符號或長度,遇到時請取消符號或調整長度。
  • 熵值與強度參考是以此方法隨機產生之密碼的理論值。