> 生成 | 安全 | 保护 <
// 即时生成加密安全的密码
强度:
—
熵: 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(),在本地运行,不会传输任何内容。