跳到正文

密码生成器 — 随机强密码与密码短语

在线密码生成器:按你选择的长度、大小写字母、数字和特殊符号生成高强度随机密码,并显示密码熵值和强度;也可以生成好记的密码短语或数字PIN码。所有密码都在浏览器本地生成,不会发送到任何地方。

正在加载工具…

这个密码生成器会按你选择的长度和字符类型生成随机密码。除了混合大小写字母、数字和符号的高强度随机密码,它还能生成好记的单词密码短语和纯数字PIN码。每个结果都附有以比特为单位的熵值及其计算公式,方便你判断多长才够用;生成的任何内容都不会离开你的浏览器。

使用方法

  1. 在“密码”标签页中,把“长度”滑块设在4到128个字符之间,默认为16。
  2. 打开要使用的字符类型:“大写字母(A–Z)”“小写字母(a–z)”“数字(0–9)”和“符号”。如果网站只接受部分特殊字符,请在“使用的符号”框中删除其他符号。
  3. 如果需要把密码写下来或念给别人听,请打开“排除易混淆的字符(O 0 I l 1)”。“每种所选类型至少包含一个”默认已打开。
  4. 在“数量”中输入1到50,即可得到相应数量的密码;每按一次“重新生成”,都会换成一批新密码。
  5. 在喜欢的那一行按“复制”,或按“全部复制”复制整个列表。旁边有人时,可以按“隐藏”遮住屏幕上的内容。
  6. 想要更好记的密码,可在“密码短语”标签页中选择“单词数”和“分隔符”;只要数字的话,可在“PIN 码”标签页中选择“位数”。

计算方式与说明

密码多长才安全?不同长度的密码熵

四种类型全部使用(94个字符)时,8个字符约为52.4比特,显示为“一般”;12个字符约为78.7比特,显示为“强”;16个字符约为104.9比特,显示为“非常强”。每多1比特,可能的组合数就翻一倍。假设攻击者每秒能尝试100亿次,穷举由94个字符组成的所有8位密码(约6.1 × 10^15种)大约需要一周,而12位密码则需要约150万年。

长度比字符类型更重要。不用符号、只用字母和数字(62个字符)时,16个字符仍有约95.3比特,比含符号的12个字符(约78.7比特)还高。所以当网站只接受部分特殊字符,甚至不接受特殊字符时,就把密码设得更长。各网站强制要求的规则和允许的最大长度不同,请以注册页面的说明为准。

密码熵怎么计算

对于每个字符都以相同概率选取的密码,熵 = 长度 × log₂(可选字符数)。从94个字符中选16个,得到 16 × log₂(94) ≈ 104.9比特。这只适用于随机生成的密码;人自己想出来的密码因为包含单词和规律,同样长度下要弱得多。

打开“每种所选类型至少包含一个”后,不符合规则的结果会被丢弃并重新抽取。因此每个符合规则的密码出现的可能性都相同,显示的熵只计算这些密码,所以会略低一些:16个字符时约为104.6比特,少约0.3比特;8个字符时约为51.3比特,少约1比特。

密码短语和随机密码哪个更好?

密码短语是从词表中随机挑选的几个单词。从7,776个单词的词表中每选一个词,增加 log₂(7,776) ≈ 12.9比特,所以4个单词约为51.7比特,5个单词约为64.6比特,6个单词约为77.5比特。6个单词的密码短语几乎和从94个字符中随机生成的12位密码一样强,而且更容易念出来和记住。

“添加一位数字”会在其中一个单词后面加一位数字,增加 log₂(10 × 单词数),6个单词时约为5.9比特。对于要求包含数字或大写字母的网站,请打开“添加一位数字”和“每个单词首字母大写”。在这种计算中分隔符不增加熵;选择“无”时,由于单词边界可能变得模糊,实际数值可能略低。

在线密码生成器安全吗?

选择密码生成器时有两点很重要:随机数的质量,以及结果会去向哪里。本工具只使用 crypto.getRandomValues,这是浏览器专为密码学随机数提供的功能,并且从不发送或记录生成的内容。它不使用通用的 Math.random。

请把新密码直接存入密码管理器或浏览器的密码库。每个网站使用不同的密码,这样一个网站泄露时,你的其他账户也不会被攻破。如果在公用电脑上复制过密码,它可能还留在剪贴板中,请复制一些其他文字把它覆盖掉。

常见问题

强密码应该有几位?
对于使用全部四种类型的随机密码,12个字符(约78.7比特)显示为“强”,16个字符(约104.9比特)显示为“非常强”。在网站允许的范围内尽量加长,是最有效的做法。
怎么生成带特殊字符的随机密码?
保持“符号”打开。同时打开“每种所选类型至少包含一个”,每个密码都会至少包含一个特殊字符。
网站不允许使用某些符号怎么办?
在“使用的符号”中删除网站不接受的符号,就只会使用剩下的符号。该框中的字母、数字和空格会被忽略。
密码生成器会保存我的密码吗?
不会。密码只在这个浏览器中生成,从不发送到服务器,关闭页面后就会消失。
排除易混淆的字符有什么作用?
它会去掉五个容易混淆的字符:大写O和数字0、大写I、小写l和数字1。手动抄写密码时很有帮助。
密码短语是什么?
由几个随机挑选的英文单词组成的密码。从7,776个单词的词表中选6个,约为77.5比特,与12位随机密码相当。
密码熵是怎么计算的?
长度 × log₂(可选字符数)。每个结果下方都会用你的实际数值显示这个公式。
6位数字PIN码有多少种组合?
1,000,000种,约为19.9比特。PIN码通常有尝试次数限制保护,所以才会使用较短的PIN码,但作为密码它很弱。
可以一次生成很多个随机密码吗?
可以。在“数量”中输入最多50,再用“全部复制”即可每行一个地复制它们。
生成了1234这样的PIN码有问题吗?
这确实是随机结果,所以这样的数字也可能出现。如果介意容易被猜到的PIN码,按“重新生成”换一个即可。