强密码生成器

直接在浏览器中创建强大且完全随机的密码——完全控制字符类型,并且密码绝不会离开您的设备。

点击生成以抽选
高级选项
编辑上方的行以使用自定义字符。 每一行都被视为一种独立的字符类型。

一个强大且唯一的密码是任何在线账户所能获得的最廉价的防御手段——而您往往在不太方便的时候才急需一个:设置新的工作登录、网银强制要求重置、刚刚拆封的全新路由器,或者在您终于决定改用密码管理器(password manager)时。这个免费的强密码生成器只需点击一下,就能创建出一个完全随机的密码。将“长度”设置为您需要的大小,挑选要包含的字符类型——大写和小写字母、数字、基本符号(%$#@!?&)以及复杂符号(.,;[]()^-_=+{}:<>|)——然后按下“生成”。

因为安全性是核心目的,所以该生成器建立在 Web Crypto API(crypto.getRandomValues)之上,它所提取的数值来自同一个受加密学保护的系统级随机源,这也是 TLS 和其他对安全要求极高的操作所依赖的基础。与基于 Math.random() 或其他可预测的伪随机函数构建的生成器不同,它的设计确保了攻击者即使看到了一个结果,也无法推断出下一个密码是什么。整个生成过程完全在您的设备上进行:密码绝不会发送到服务器,绝不会被记录,我们也绝对看不到——没有任何数据会被中途拦截,也没有任何东西供我们存储。

丰富的选项使其能够轻松适应任何网站的密码策略。每个生成的密码都保证包含您所选的每种字符类型至少一个——因此像“必须包含一个大写字母和一个数字”这样的要求会自动得到满足——并且“确保每种字符类型数量大致相等”默认处于开启状态,这样就不会有单一类别的字符占据压倒性的比例。为了获得最大强度,您可以开启符号;对于拒绝符号的旧版系统,则可以将其关闭。“排除易混淆字符”开关会移除人们最常看错的字符(Il1O0o)。

需要多个密码,或者遇到了不同寻常的策略要求?您可以设置“生成数量”以一次性创建一整份列表——最多可达 100 个密码,例如在为团队创建账户时——而一旦数量大于 1,“结果格式”将决定它们的拼排方式:“换行”、“以空格分隔”或“以逗号分隔”。其余功能都在“高级选项”下。关闭“排除同一密码中的重复字符”即可允许同一个字符出现多次。虽然本生成器无法直接包含中文字符,但它支持了其他 35 种语言的特殊字母——从乌克兰语、希腊语和塞尔维亚语,到波兰语、土耳其语和越南语。为了获得完全的控制权,“字符集(每行一个)”允许您定义自己的字符库:每一行都会成为一个独立的字符类别,供生成器从中随机抽取。

为什么选择这个密码生成器?

这种随机性是如何产生的?您的操作系统会持续收集熵(entropy)——也就是来自硬件事件的不可预测的噪声——并将其输入到一个安全加密的随机数生成器中。当您按下“生成”时,页面的 JavaScript 会通过 crypto.getRandomValues 向浏览器请求随机值,将它们映射到您选择的字符类别上,检查每种类别的代表是否都存在,然后组装出密码。这里没有可供猜测的种子(seed),没有可让专门的密码破解硬件用来重播的算法捷径,任何步骤中也都没有网络请求——整个流程只在您的设备上运行。

在结果下方,您会看到以比特为单位的熵值估算——这是衡量密码强度的标准:对于日常账户来说 60+ 比特是合理的,80+ 算得上强大,而 100+ 则已超出了当今硬件进行暴力破解(brute force)的实际能力范围。养成两个习惯比什么都重要。第一,长度胜过复杂性:对于任何重要的账户,请使用 16 个以上字符——每增加一个字符,攻击者的破解工作量就会成倍增长,速度远超再增加一种符号类别。第二,唯一性:当某个网站遭受数据泄露(data breach)时,泄露的登录凭据会立刻被拿到其他服务上尝试——这被称为撞库(credential stuffing)攻击——因此,即使只是重复使用了一个密码,也可能让一次单一的泄露演变成全面的账户劫持。为每个账户生成一个单独的密码,将它们保存在密码管理器中,并在所有提供该功能的地方启用两步验证(2FA)。另外,如果一个真正随机的密码包含了一个重复的字符或者一小段看似可读的片段,也不要感到惊讶——真正的随机性总是会产生这样的序列,并且它们丝毫不会让密码变得脆弱。

FAQ

在线生成密码安全吗?

使用这个工具的话,是的。密码完全在您的浏览器中使用 Web Crypto API 创建,并且永远不会传输到任何地方:在生成过程中不会发起任何服务器请求,因此无论对于我们——还是中间的任何人——都没有任何东西可以拦截或存储。

我的密码应该有多长?

请使用至少 12 个字符;对于任何重要的账户,建议使用 16 个或更多字符。长度胜过复杂性:每一个额外的字符都会使攻击者必须尝试的组合数量成倍增加。

随机密码真的比我自己编的密码好吗?

是的。人类编造的密码往往遵循可预测的习惯——字典单词、名字、日期、像 qwerty123 这样的键盘滑动路径——而破解工具首先尝试的正是这些模式。随机生成的密码没有这种结构,因此攻击者就只剩下暴力破解这一条路,而对于 16 个字符的随机密码来说,这实际上是不可能完成的。

结果下方的熵值(bits)意味着什么?

熵评估的是密码有多么难以预测。粗略地说:60+ 比特对于日常账户是合理的,80+ 算得上强大,而 100+ 则超出了当前硬件进行暴力破解的实际能力范围。

“排除易混淆字符”选项有什么作用?

它会移除那些容易相互混淆的字符——大写 I、小写 l、数字 1、大写 O、数字 0 和小写 o。当密码需要被大声朗读、打印出来或者从纸上照着输入时,请使用该选项。

我可以用我自己的字符来创建完全自定义的密码吗?

可以。展开“高级选项”并使用“字符集(每行一个)”来定义您自己的集合。每一行都会成为一个单独的字符类别,这样您就能要求从每个组中提取特定的字符——这非常适合满足那些不同寻常的网站要求。

我可以包含我自己语言的字母吗?

可以,不过这项功能支持的是 35 种其他语言。虽然这不包括中文字符,但如果您需要使用非拉丁字母(如西里尔字母、希腊字母或亚美尼亚字母),或者像波兰语、丹麦语、土耳其语及越南语中那样带有附加符号的拉丁字母,您可以使用“字符集(每行一个)”来手动添加这些语言的特定字符。

为什么每个密码都一定包含一个数字和一个大写字母?

因为生成器保证从您选择的每一个类别中至少提取一个字符,所以结果始终能满足诸如“必须包含一个大写字母和一个数字”等典型的网站要求。只需取消勾选某个类别,即可将其完全排除。

我是不是应该使用密码短语(passphrase)而不是密码?

当您必须记住或手动输入一个秘密时,比如作为密码管理器的主密码,密码短语(由几个随机单词组成,如 diceware 方法)是非常好的选择。而对于保存在管理器内部的所有东西,一个 16+ 字符的随机密码在强度上至少是同等的。两者结合使用吧:为管理器设置一个强大的密码短语,为其他所有账户设置随机密码。

我应该多久换一次密码?

现代的安全指南不再建议按固定时间表定期更改密码——强制性的轮换往往导致人们编造出更弱的、可预测的变体。只有在有理由的时候才更改密码:比如服务发生泄露、遭遇网络钓鱼威胁、或者是一个共享账户。真正重要的是每个账户都有其自己的长且随机的密码。

你们会存储或看到我生成的密码吗?

不会。生成过程在您的设备上本地运行,结果绝不会离开您的浏览器。我们在技术上根本没有能力查看、记录或存储您的密码。