密码生成器
在浏览器中创建强随机密码。选择长度和字符类型——密码在本地生成,绝不会发送到任何地方。
使用方法
设置长度并选择要包含的字符类型——大写字母、小写字母、数字和符号。新密码会立即生成;点击刷新按钮可再生成一个,点击复制按钮即可获取。密码下方的强度指示器会估算破解它的难度。 真正决定密码强度的是长度和多样性,而不是巧妙的替换。把“a”换成“@”,或把“e”换成“3”,几乎没有帮助——攻击者的破解工具早已优先检查这些模式。由更广泛字符池构成的更长密码,比用符号装饰过的短密码更难猜到,因为可能的组合数量会随着长度和字符池大小同时增长。 此工具使用 Web Crypto API 的 crypto.getRandomValues() 生成密码,这与浏览器用于加密的密码学安全随机数来源相同。这与 Math.random() 有显著区别——后者速度快,但可预测性足以使其不适用于任何与安全相关的场景。生成的密码中每个字符都是独立且无偏地选取的,因此软件无法从中学习到任何模式。 强度通常以熵的比特数来衡量:大致等于密码长度乘以字符池大小的 log2 值。一个从 94 个字符的字符池(包含全部大写字母、小写字母、数字和符号)中抽取的 16 位密码,约等于 16 × 6.55 ≈ 105 位。这个数字远超任何现实的暴力破解攻击所能承受的范围——以现有硬件计算,所需时间将超过宇宙的年龄。 你在这里生成的任何内容都不会发送到任何地方。密码完全在你的浏览器中通过客户端 JavaScript 生成,因此它永远不会经过网络请求或服务器日志——刷新页面它就消失了,就像你把它写在纸上再烧掉一样。 有几个实际习惯比任何单一工具都更重要:为每个账户使用不同的密码,这样一个网站的泄露就不会波及其他账户。把密码存放在密码管理器中,而不是靠记忆或重复使用变体——这才是让又长又随机的密码在日常中真正可用的关键。并且只要提供双因素认证,就应该开启它;即使密码最终泄露,它也能保护你。
常见问题
- 这些密码真的是随机的吗?
- 是的。每个字符都来自 Web Crypto API 的 crypto.getRandomValues(),这是浏览器用于加密的密码学安全随机数来源——而不是 Math.random(),后者可预测且不适用于安全场景。每个字符都是独立选取的,不偏向任何模式。
- 在这里在线生成密码安全吗?
- 是的。生成过程完全在你的浏览器中通过运行于你设备上的 JavaScript 完成——密码永远不会发送到服务器,也不会被记录或存储在任何地方。重新加载页面它就消失了,就像它从未在你的屏幕之外存在过一样。
- 我的密码应该多长?
- 对大多数账户来说,至少应有 16 个字符,并混合使用大写字母、小写字母、数字和符号。这样可以获得超过 100 位的熵,远超暴力破解的能力范围。对于特别敏感的账户(电子邮件、银行账户、你的密码管理器本身),建议使用 20 位或更多。
- 我应该在多个网站上重复使用同一个强密码吗?
- 不应该。强密码只能保护使用它的那个账户——如果其中一个网站遭到入侵,而你重复使用了这个密码,那么所有使用同一密码的其他账户也会随之暴露。应为每个网站生成一个独立密码,并用密码管理器进行管理,而不是重复使用即便是非常强的密码。