免费转换器

随机密码 生成器

在浏览器中即时生成安全的随机密码。自定义长度和字符类型——免费、私密,无数据上传。

生成

关于此工具

随机密码生成器生成旨在抵抗猜测和暴力攻击的字符串。生成的密码的强度取决于其长度和所使用的字母表(可能的字符集):94 个字符的字母表中的 12 个字符(大写字母 + 小写字母 + 数字 + 符号)产生大约 79 位的熵,对于一般用途来说,这被认为是足够强大的。较短或较简单的密码产生的熵较少,并且对现代攻击硬件的抵抗力较弱。

重要的是,该生成器使用加密安全随机源 (window.crypto.getRandomValues),而不是不适合安全目的的简单 Math.random。输出适合实际用作帐户密码、个人使用的加密密钥以及不可预测性重要的任何其他上下文。

所有生成都发生在您的浏览器中。密码永远不会传输到服务器,不会被记录,也不会保留在我们可以访问的任何地方。要使用生成的密码,请将其直接复制到目的地 - 密码管理器、帐户创建表单或任何需要的地方。

为什么使用密码生成器

人类选择可预测的密码。对被破坏的密码数据库的研究一致表明,相同的简单模式出现了数百万次:“123456”、“密码”、带有数字的字典单词、宠物和家庭成员的名字。生成的随机密码完全避免了这些模式。

跨帐户重复使用密码也是一个主要风险。当一个站点的数据库泄露时,使用相同密码的所有其他帐户都会受到损害。每个帐户的唯一随机密码存储在密码管理器中,可以消除这种攻击媒介。生成器一次生成一个新的唯一密码。

使用方法

设置长度和字符集,生成。

  1. 选择长度: 一般用途最少 12 个字符; 16+ 包含财务或个人数据的账户; 24+ 用于主密码或加密密钥。越长越强;只有实际限制才重要。
  2. 选择字符集: 默认包括大写、小写、数字和常用符号。如果目标拒绝特定类别,则禁用它们(某些旧系统禁止某些字符)。
  3. 生成: 浏览器的 crypto.getRandomValues 使用映射到所选字母表的加密安全随机字节填充密码。
  4. 复制并使用: 直接复制到目的地。使用密码管理器(1Password、Bitwarden、Keychain)来存储密码,而不是键入或记住它。

常见用例

技术细节

window.crypto.getRandomValues 使用从浏览器的安全随机源提取的加密安全随机字节填充类型化数组。密码的每个字符都是通过将随机字节映射到所选字母表来选择的,并使用拒绝采样以避免模偏差。

熵:log2(alphabet_size^length)。 94 个字符字母表中的 12 个字符 = 12 × log2(94) ≈ 78.7 位。 62 个字符字母表中的 16 个字符(仅限字母数字) ≈ 95.3 位。熵越高,暴力破解就越困难。

实际攻击率:现代 GPU 在集群中每秒散列大约 1000 亿次 bcrypt-cost-12 次尝试。 78 位熵 = 2^78 ≈ 3 × 10^23 个候选者。以 GPU 速度进行暴力破解大约需要 10^14 年——这是不可行的。较低熵的密码很快就会落入可到达的攻击范围。

最佳实践

常见问题

生成的密码有多随机?
密码是使用 Web Crypto API (crypto.getRandomValues()) 生成的,它提供加​​密安全的伪随机数。这与专业密码管理员使用的熵源相同。
我应该使用什么长度?
重要帐户(电子邮件、银行业务)至少使用 16 个字符。 12 个字符是合理安全性的最低限度。为了获得最大的安全性,请使用 20 个以上的字符。
我应该包含特殊字符吗?
是的,只要服务允许。特殊字符极大地增加了可能的组合数量。包含所有字符类型的 12 个字符的密码比仅包含小写字母的密码多 475 万亿倍的组合。
生成的密码是否存储在任何地方?
不会。在您关闭或刷新页面之前,密码仅存在于浏览器的内存中。我们从不存储、记录或传输生成的密码。
我应该记住生成的密码吗?
不。使用密码管理器。记忆会诱惑使用更简单的密码,这会破坏安全性。
我可以一次生成多个密码吗?
是的。大多数生成器支持批量生成以填充测试装置或准备帐户。每个都是独立生成的,具有新鲜的随机性。
什么是密码?
由大词典中的多个随机单词组成的密码。具有相当的安全性,但长度要长得多,但更容易打字,而且更容易记住。不同的生成器专门研究密码短语。
window.crypto 在所有浏览器上都是安全的吗?
是的,适用于所有现代浏览器。该标准需要加密安全源。没有 crypto.getRandomValues 的旧版浏览器不会在生产中用于安全操作。