> 產生 | 安全 | 保護 <
// 即時產生加密安全的密碼
強度:
—
熵: 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) |
|---|---|---|
| 8 | 47.6 | 52.4 |
| 12 | 71.5 | 78.7 |
| 16 | 95.3 | 104.9 |
| 20 | 119.1 | 131.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(),在本機執行,不會傳輸任何內容。