產生 | 安全 | 保護

> 產生 | 安全 | 保護 <

// 即時產生加密安全的密碼

強度: —
熵: 0 位元
[CRYPTO]

加密隨機

使用 crypto.getRandomValues() 實現真正的加密隨機性。

[CUSTOM]

完全可設定

選擇長度、字元集並排除歧義字元。

[FREE]

批量產生

一次產生最多20個密碼。

// 關於密碼產生

運作原理:

此產生器使用 Web Crypto API 的 crypto.getRandomValues() 方法(CSPRNG)。每個字元使用加密隨機的32位元無符號整數從設定的字元池中選擇。

範例:

Kj9#mP2$xR7!nQ4&

為什麼使用產生器:

  • >透過 crypto.getRandomValues() API 實現 CSPRNG
  • >熵計算顯示實際強度
  • >可設定的字元池適應任何策略
  • >批量產生用於佈建工作流
  • >100%客戶端 — 密碼永遠不會離開您的瀏覽器

>> 常見問題

Q: 為什麼要使用密碼產生器?

A: 人類不擅長建立隨機密碼。加密產生器可以產生真正隨機的高熵密碼。

Q: 這些密碼安全嗎?

A: 非常安全。使用 crypto.getRandomValues(),密碼完全在您的裝置上產生。

Q: 什麼是密碼熵?

A: 熵以位元為單位衡量密碼強度。計算為 log2(池大小^長度)。80+位元被認為是強的。

Q: 推薦的密碼長度是多少?

A: 大多數帳戶建議16個字元以上。高安全性應用建議20-32個字元。

Q: 密碼短語 vs 隨機密碼?

A: 兩者都可以是安全的。隨機密碼更短但更難記憶。密碼短語更長但更容易記憶。

// 不同長度的熵(位元)

長度字母 + 數字(62)全部可列印字元(94)
847.652.4
1271.578.7
1695.3104.9
20119.1131.1

// 在命令列產生密碼

openssl       openssl rand -base64 18
Linux         tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 20
Python        secrets.token_urlsafe(16)
Node.js       crypto.randomBytes(16).toString('base64url')
Browser       crypto.getRandomValues(new Uint32Array(8))

entropy (bits) = length x log2(alphabet size)

>> 更多問題

問:長密碼比短而複雜的密碼更好嗎?

答:通常是的。每增加一個字元,熵增加 log2(字元集大小) 位元;16 位字母加數字(約 95 位元)遠勝 8 位含符號的密碼(約 52 位元)。

問:可以重複使用產生的密碼嗎?

答:不可以。每個帳號使用不同的密碼,並存放在密碼管理員中。重複使用會讓一次外洩變成所有帳號被攻破。

問:為什麼密碼不能用 Math.random()?

答:Math.random() 可預測,並非為安全設計。本產生器使用瀏覽器的密碼學安全亂數 crypto.getRandomValues(),在本機執行,不會傳輸任何內容。

// 其他語言