密码生成器

使用自定义长度和字符集创建强随机密码。

100% 隐私安全 — 完全在您的浏览器中运行。您的数据在本地设备上处理,绝不会发送到互联网。

关于密码生成器

这款免费的密码生成器可以创建强而随机的密码。选择长度和要包含的字符类型,立刻就能得到一个独一无二的密码——强度指示给出的是真实的熵值(以位计),而不是一个含糊的颜色。

密码在您的浏览器中由 crypto.getRandomValues 生成,这是浏览器内置的、密码学上安全的随机源。没有任何内容被发送或记录,您在这里看到的密码从未在任何服务器上存在过。这并非小事:一个在服务器端生成密码的工具,是一个您必须完全信任的工具。

密码真正的强度来自哪里

不是符号。不是开头一个大写字母、结尾一个 1。是长度和随机性——只有这两点重要,而其中长度更重要。

衡量的指标叫熵,以位计。每增加一位,攻击者需要穷举的可能性就翻一倍。从 62 个字符(字母和数字)中随机抽取的密码,每个字符约携带 5.95 位,所以 12 位的密码约 71 位熵,16 位的约 95 位熵。

面对拥有强力硬件、在离线状态下穷举的攻击者,这些数字的实际含义是:

  • 低于 40 位 — 几秒钟就会被攻破
  • 50–60 位 — 数小时到数天
  • 70–80 位 — 数年,对大多数攻击者已不现实
  • 90 位以上 — 以现有技术无法实现

多加四个字符的效果,远远超过加一个 !。每增加一个字符,工作量就成倍增长;而一个符号只是稍微扩大了字符集。

为什么「Passw0rd!」很弱,而长的随机密码不弱

密码规则教了整整一代人如何创造对*人类*难记、对*计算机*好猜的密码。开头大写、结尾数字、用 @ 代替 a。攻击者对此一清二楚。每一款破解工具都会自动套用这些替换,因为大家做的替换都一样。

真正的攻击不会从 aaaa、aaab、aaac 逐个试起。它从泄露的密码列表开始——数十亿条来自真实数据泄露的真实密码——再套用那些可预测的变形。P@ssw0rd! 在这些列表里出现过很多次。它有 9 个字符,有效熵却几乎为零。

一个随机的 16 位密码没有任何可利用的规律,所以这套机器毫无用处。只能靠暴力破解,而 95 位的暴力破解跑不完。

问题的另一半是重复使用。当一个网站被攻破,被盗的邮箱与密码组合会被自动拿到数百个其他网站上尝试。一个重复使用的密码,会把某家公司的失误变成您在所有地方的麻烦。每个网站用一个独立的随机密码,就能把损失限制在那一个账户上——这才是使用密码管理器的真正理由。

选择长度

  • 16 个字符 — 适用于几乎一切的良好默认值
  • 20 个及以上 — 邮箱、银行、密码管理器的主密码,以及任何能重置其他账户的地方
  • 12 个字符 — 网站不接受更长时可接受的下限
  • 少于 12 个 — 仅在系统强制时使用,并把该账户视为保护薄弱

您的邮箱账户值得用您所使用的最长密码。谁控制了您的邮箱,就能重置几乎其他所有东西。

关于排除易混淆字符

打开排除易混淆字符会移除 O、0、l、1、I 之类——人们在屏幕上读密码再到别处输入时最容易看错的字符。

当密码需要手动输入时请使用它:路由器卡片上的 Wi-Fi 密钥、用遥控器设置的设备、通过电话口述的内容、打印出来交给别人的东西。

如果密码会直接存进密码管理器、只会被粘贴,就让它保持关闭。排除字符会缩小字符集,从而略微降低熵——多加一两个字符的长度就能轻松补回来。

使用方法

  • 设置长度并选择字符类型(大写、小写、数字、符号)
  • 生成 — 出现一个新密码(再点一次可换一个)
  • 复制 — 用复制按钮,然后粘贴到需要的地方

值得注意

  • 绝不要重复使用生成的密码。 如果同一串字符保护着五个账户,它的强度就毫无意义。
  • 把它存进密码管理器,而不是便签、表格或浏览器标签页。一个您记不住的强密码,只有在别的东西替您记住时才有用。
  • 有些网站会悄悄截断。 某些系统会在 16 或 20 个字符处切掉密码却不告知。如果一个长密码在注册时被接受、登录时却被拒绝,通常就是这个原因。
  • 少数网站仍然禁止符号。 关掉符号,改为增加长度——您几乎没有任何损失。
  • 剪贴板不会立刻遗忘: 复制过的密码会留在那里。如果与人共用设备,之后请再复制点别的东西。
  • 两步验证胜过更长的密码。 超过大约 16 个随机字符之后,下一步的安全提升是双因素认证,而不是第 17 个字符。

常见问题

密码应该多长?

16 个随机字符是一个合理的默认值,对几乎任何账户都足够强。邮箱、银行以及密码管理器的主密码请用 20 个或更多,因为它们能解锁其他一切。当网站不接受更长时,12 个是可接受的底线。长度带来的安全性,远超过在短密码里加入生僻符号。

这些密码真的是随机的吗?

是的。它们来自 crypto.getRandomValues,即浏览器内置的密码学安全随机数生成器——与用于加密密钥的是同一类来源。它不是 Math.random(),后者可预测,不适合任何与安全相关的用途。整个生成过程都在您的设备上完成。

在网站上生成密码安全吗?

这完全取决于生成发生在哪里。如果一个网站在它的服务器上生成,那台服务器就看过您的密码,您等于完全信任它。这款工具在您的浏览器中生成:密码在您的设备上产生,从不传输,也不存在于任何其他地方。断开网络连接后工具依然可用,您可以据此验证。

我的密码需要符号吗?

有一点帮助,但远比人们以为的少。加入符号会把字符集从 62 个扩大到约 94 个,相当于每个字符多出约 0.6 位熵。再加两个字符的价值更大。如果网站不接受符号,直接把密码加长即可,您并没有失去什么实质性的东西。

位数代表什么?

它是熵,也就是密码中包含多少真正的随机性。每多一位,攻击者所需的尝试次数就翻一倍。低于 40 位很快会被攻破;70 到 80 位在实践中已无法破解;超过 90 位则超出当前技术的能力。它比红黄绿进度条诚实得多,后者往往只是在数字符类型。

我应该定期更换密码吗?

不要按日程更换。强制轮换会让人选出更弱、更可预测的密码——Summer2024! 变成 Summer2025!。NIST 目前的建议是使用长而唯一的密码,并在有理由时才更换:收到泄露通知、密码被分享过,或怀疑账户被访问过。

如果网站限制我的密码长度怎么办?

用它允许的最大长度生成,如果符号被拒绝就关掉符号。注意悄悄截断:如果密码在设置时可用、下次登录却失败,很可能是网站在没有告知的情况下把它切短了。这时请刻意设置一个更短的密码,以便确切知道存进去的是什么。

相关工具

视频教程

我们会定期添加新工具——在 YouTube 上订阅,即可在每个新工具上线时收到通知。

更多工具

查看全部

推荐应用

查看全部