无需上传、100% 本地处理、无需账户

密码生成器

生成包含大写、小写、数字和符号的强密码。排除易混淆字符。批量生成。使用 crypto.getRandomValues 实现最大熵值。

密码生成器 的工作原理

密码生成器使用浏览器的 crypto.getRandomValues API 创建加密随机密码,该 API 从操作系统的熵池中提取数据。与简单的基于 Math.random 的生成器不同,crypto.getRandomValues 是一种加密安全的伪随机数生成器(CSPRNG),推荐用于安全敏感的应用程序。你配置或生成的内容不会发送到任何地方;整个过程在你的设备上运行。

你可以控制包含哪些字符集:大写字母、小写字母、数字和一组可配置的符号。你还可以设置长度。工具为每种配置显示估计的熵(以位为单位),以便你评估选择的强度。使用全部四类字符的 16 字符密码通常产生约 95 位的熵,超过了 NIST 对高价值账户推荐的阈值。

密码生成器 的分步使用说明

  1. 使用长度滑块或输入字段设置所需的密码长度。
  2. 切换要包含的字符类:大写、小写、数字和符号。
  3. 如果需要排除在某些输入字段中造成问题的字符,可以自定义符号集。
  4. 点击「生成」(或刷新图标)创建新密码。
  5. 点击复制按钮将生成的密码复制到剪贴板。

常见使用场景

  • 在服务上创建新账户的用户需要一个强大的唯一密码,他们将存储在密码管理器中。
  • 配置新服务账户的系统管理员需要满足策略(要求大写、小写、数字和符号)的随机密码。
  • 测试表单密码强度计的开发者需要不同复杂度的随机密码来确认计量器的阈值是否正确。
  • 创建来宾 Wi-Fi 凭据的小企业主想要一个足够长但仍随机到足以抵抗猜测的密码。

常见问题

这里使用的随机数生成器是真正随机的吗?

crypto.getRandomValues 是一种 CSPRNG(加密安全的伪随机数生成器)。它从操作系统的熵源(硬件事件、计时器抖动等)播种,并产生在计算上与真正随机字节无法区分的输出。它适合生成密码、令牌和密钥。批量模式会为列表中的每个密码单独抽取新的随机数,因此没有任何一个密码是从另一个推导而来的。

生成的密码会被存储或发送到任何地方吗?

不会。密码完全在浏览器的 JavaScript 引擎中生成并显示在 UI 中。它从不被写入任何数据库、分析系统或服务器。一旦你导航离开或关闭标签页,密码就从浏览器的内存中消失了。

密码的「熵位数」是什么意思?

熵是不可预测性的度量。对于从大小为 N 的字符池中均匀随机抽取的密码,每个字符添加 log2(N) 位熵。来自 94 个可打印 ASCII 字符集的 16 字符密码有 16 * log2(94) 约 104.9 位熵。熵越高,通过暴力破解找到密码所需的猜测次数越多。

每个密码都应该包含符号吗?

符号增加字符池大小,从而提高每个字符的熵。但是,某些系统拒绝密码字段中的某些符号(分号、引号、尖括号)。工具让你自定义符号集,以便在保留其余符号的同时删除有问题的字符。

可以用此工具生成密码短语(基于单词的密码)吗?

此工具生成基于字符的随机密码。对于基于单词的密码短语(如 Diceware 方法),你需要一个从单词列表中抽取的单独工具。来自完整字符集的 16 个字符或更多的基于字符的密码提供与大多数四词密码短语相当或更高的熵。

生成密码需要账户吗?可以在手机上使用吗?

不需要账户,也无需注册。crypto.getRandomValues 在手机版 Chrome 和 Safari 中与在桌面浏览器中一样可用,因此在手机上注册账户时生成一个强密码,效果和在电脑上完全一样。