U.UtilityApp
⚙️ 开发免费 · 无需注册

强密码生成器

生成最长 64 位、难以破解的强密码,完整控制符号种类与熵值。

强密码生成器默认 20 位

这个强密码生成器打开时会生成一个 20 位的密码,包含大写字母、小写字母、数字和 25 个符号,字符池共 87 个字符;滑块最长到 64 位。页面没有显示强度,下表列出各长度在这个字符池下的强度,以及取消“符号”(剩 62 个字符)后的强度:

长度四类字符全选仅字母和数字
20128.9 bit119.1 bit
24154.6 bit142.9 bit
32206.2 bit190.5 bit
64412.3 bit381.1 bit

不用符号又想保持同样的强度,加两位即可:22 位字母加数字约 131.0 bit,比默认的 20 位还略高。

按账号的重要程度选长度

  • 邮箱和密码管理器的主密码:它们能打开其他所有账号,默认的 20 位可以当作最低要求。如果主密码需要经常手动输入,用多个词组成的口令可能更合适,本工具不生成这种口令。
  • 管理员、root 和数据库账号:24 到 32 位。这类密码没人靠记忆输入,加长没有任何成本。
  • 保存在密钥库里的服务账号和密钥:只要系统接受,32 到 64 位都可以。
  • 加密的备份压缩包:设长一些,并存放在五年后还能找到的地方。密码丢了,备份也就打不开了。

确认整段密码都被接受了

长密码失败的方式往往很隐蔽:有的表单超过最大长度会直接截断而不提示,有的系统注册时接受某个符号,登录时却不认。离开页面前请按顺序做三件事:

  1. 把密码粘贴进表单并保存。
  2. 把密码存进密码管理器。
  3. 退出登录,再用存下来的密码重新登录一次。

如果第 3 步失败,多半是输入框有长度限制或禁用了某个字符。查到对方允许的最大长度,把滑块拉到这个值,必要时取消“符号”,然后再点“生成新密码”。只拖动滑块不会生成新密码。

每个字符是怎么选出来的

每一位都从浏览器的密码学随机数生成器 crypto.getRandomValues 取一个 32 位的值,再取余映射到 87 个字符上。这种映射带来的偏差大约是一亿分之二,不影响上面任何一个数字。密码在页面里生成,不会发送到任何地方。

每一位都是独立抽取的,所以工具不保证每种字符都出现。20 位时,大约每 100 个密码中有 9 个至少缺一种字符,通常是数字。如果网站坚持要求,请重新生成,而不是手动改动结果。

常见问题

64 位的密码是不是太长了?+

需要手动输入的密码,通常确实没必要。只给机器读的密钥,比如保存在配置密钥库里的数据库密码,加长不花任何代价,很多系统也都接受。

能一次生成多个强密码吗?+

不能,每次点击生成一个。给每个账号分别点一次“生成新密码”,存好一个再生成下一个。

会检查密码有没有出现在泄露库里吗?+

不会。密码不会发送到任何地方,所以无法和任何在线名单比对。这么长的新生成随机密码,出现在泄露库里的可能性极小。

强密码需要定期更换吗?+

有原因时再换:收到泄露通知、在共用设备上用过,或者有不该再有权限的人知道了它。足够长的随机密码不会因为时间久了就变弱。