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

密码生成器

自定义长度、数字、符号和大写字母,生成强随机密码。本地生成,不发送至任何地方。

随机密码生成器的每个选项值多少强度

密码生成器先把你勾选的字符类型合成一个字符池,再从池里随机抽出每一个字符。默认长度 16 位,四个选项全选。下表是 16 位密码在本工具实际字符集下的强度,单位是比特(bit),每多 1 比特,暴力猜中的难度就翻一倍:

勾选的选项字符池大小16 位时的强度
大写字母、小写字母、数字、符号87103.1 bit
大写字母、小写字母、数字6295.3 bit
小写字母、数字3682.7 bit
仅小写字母2675.2 bit
仅数字1053.2 bit

字符池由 26 个小写字母、26 个大写字母、10 个数字和 25 个符号组成。如果四项全都不勾,工具会退回到只用小写字母,保证不会生成空结果。

改了设置,要点“生成新密码”

页面打开时会自动生成一个密码。之后拖动“长度”滑块或勾选选项,现有密码并不会变。调整好之后请点击生成新密码,再用输入框旁边的复制按钮复制。长串随机密码手动抄写很容易出错。

每个字符都来自 crypto.getRandomValues,也就是浏览器的密码学安全随机数。密码只存在于当前页面,刷新或重新生成就会被替换,没有历史记录可以找回,所以离开页面前请先存进密码管理器。

注册时提示“密码必须包含数字”

工具不会强制每种字符至少出现一个。每一位都从整个字符池里抽取,所以生成的密码可能恰好没有数字。四项全选、长度 16 位时,大约每 100 个密码中有 15 个至少缺一种字符类型,缺的几乎都是数字;长度 8 位时约有一半。

如果网站拒绝,看一眼有没有数字和符号,然后再点一次生成。不要在末尾手动补一个 1,这会让最后一位变得可预测,白白损失一部分随机性。

符号在命令行和配置文件里可能出问题

符号集里有 $ & ; < > 和各种括号,它们在 Shell、.env 文件和一些配置格式里有特殊含义。符号集里没有引号、反斜杠、反引号、空格和竖线,已经避开了最麻烦的几种。

如果密码要写进命令行或配置文件,要么在那里用单引号把它括起来,要么取消勾选“符号”,再把长度加两位来弥补:18 位不含符号的密码约 107.2 bit,比 16 位含符号的还略高。

常见问题

能排除 l、1、I、O、0 这类容易混淆的字符吗?+

本工具不能。如果密码需要在电视上输入或口头念给别人,可以只用小写字母和数字,并把长度加长,这样易混淆的组合会少很多。

刷新页面后密码为什么变了?+

每次打开页面都会重新生成一个,而且什么都不保存。关闭或刷新之前请先复制保存。

最长能生成多少位的密码?+

滑块范围是 6 到 64 位。有些网站的长度上限更低,保存后最好用存下来的密码登录一次,确认整段都被接受了。

用拼音加生日当密码安全吗?+

不安全。拼音、姓名缩写、生日、手机号和 123456 这类组合都是破解时最先尝试的。6 位纯数字只有 100 万种可能。为每个账号单独生成一个随机密码,再交给密码管理器保管,才是可靠的做法。