生成器

密码生成器

一键创建强随机密码。

给这个工具评分

如何使用 密码生成器

  1. 选择长度以及要包含的字符类型。
  2. 点击"生成"。
  3. 复制你的新密码。

关于 密码生成器

这里的每一个密码都在你的浏览器中通过 crypto.getRandomValues() 生成,这是 Web Crypto API 提供的密码学安全随机源。这一点很重要:大多数脚本使用的普通 Math.random() 是一种可预测的伪随机算法,任何得知其内部状态的人都能重现,它并不适合用于密码。没有任何数据被发送到任何地方,也不会被记录——加载此页面,断开网络连接,它依然可以正常工作。

长度胜过复杂度。每增加一个字符,可能的组合数就会乘以字符集的大小,因此强度会随长度呈指数级增长,而只随字符种类的多样性呈线性增长。当所有字符类型都被勾选时,字符池有 87 个字符——26 个大写字母、26 个小写字母、10 个数字、25 个符号——这让一个 16 位密码成为 87 的 16 次方分之一的可能性之一。这也是为什么一个又长又"平淡"的密码胜过一个夹带几个符号的短密码,以及为什么 P@ssw0rd! 很弱:它太短,而且那些替换手法正是攻击者最先尝试的。

本工具本身无法给出的诚实建议是:使用密码管理器,并且每个网站使用不同的密码。随机密码只有在保持唯一时才是强密码——重复使用密码,正是让一家公司的数据泄露变成攻击者读取你邮箱的原因。如果你需要的是令牌或 API 密钥而非密码,请使用随机字符串生成器

常见问题

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

是的。它们来自 crypto.getRandomValues(),即浏览器的密码学安全随机源,而不是 Math.random()——后者是可预测的,不适合用于任何与安全相关的场景。

我的密码会被发送到任何地方吗?

不会。它完全由运行在你浏览器中的 JavaScript 生成。没有任何网络请求,不会记录或存储任何内容,一旦你关闭标签页,密码就会消失。

我的密码应该多长?

使用完整字符集时,16 个字符是一个合理的默认值,也是本工具的起始设置。更长的密码确实更强,因为每多一个字符都会让可能的组合数成倍增加。如果某个网站允许更长的长度,优先选择更长,而不是费心寻找生僻符号。

是否保证每种字符类型都至少出现一次?

不保证。字符是从合并字符池中独立抽取的,因此一个较短的密码有可能恰好不包含任何符号。如果某个网站要求每种类型都必须出现,请重新生成一次,或手动编辑结果。

我应该记住自己生成的密码吗?

不需要——这正是密码管理器存在的意义。为每个网站生成一个唯一的随机密码,交给密码管理器去记住它。密码重复使用,正是让一次数据泄露演变成多个账户被攻破的原因。