CodeKitHub
日常工具

强密码在线生成器

最后更新:

一键生成高强度随机密码。自定义长度和字符类型,实时显示强度评估。密码由浏览器的加密级随机数生成器产生,绝不离开你的设备——不传输、不存储、不记录。

强度:

使用方法

  1. 用滑块设置密码长度(建议 16 位以上)。
  2. 勾选需要的字符类型——类型越多,密码越强。
  3. 如果以后要手动输入密码,可勾选排除易混淆字符。
  4. 点"生成密码"(修改任何选项时也会自动生成新密码)。
  5. 点"复制",然后保存到密码管理器中。

示例

输入

长度 16,启用全部字符类型

输出

K7#mQv9!xR2pWz@e

约 105 比特熵——现代 GPU 集群暴力破解所需时间超过宇宙年龄。

工具介绍

密码生成器创建的随机密码,强度远超人类自己想出来的任何密码。人总会选择好记的模式——名字、日期、键盘顺序——而攻击者对这些模式了如指掌。一个使用全字符集的 16 位随机密码约有 100 比特熵,超出任何现实暴力破解的能力。

本生成器使用 Web Crypto API(与操作系统生成加密密钥同级别的安全随机源),保证每种勾选的字符类型至少出现一次,并基于真实熵值显示强度评估,让你直观看到每个选项的影响。

NIST 的密码指南 SP 800-63B 也印证了这一点:它建议支持长密码(至少支持到 64 个字符)、把候选密码与已知泄露密码库比对,并取消强制的字符组合规则和定期改密——因为真正决定强度的是长度和随机性,而不是强制加符号。

实用技巧

  • 长度胜过花哨:只用小写+数字的 20 位密码,比用遍所有符号的 10 位密码更强——拖动滑块看熵值变化,自己验证这一点。
  • 有些网站限制长度或禁用符号(银行是重灾区)。用勾选项适配它们的规则,别手工改密码——手改的部分恰恰是可预测性集中的地方。
  • 每个网站生成一个新密码。一旦密码在某个被脱库的网站上复用过,它本身多强都无所谓了。
  • 必须背下来的密码(电脑登录、密码管理器主密码),20 位以上不含符号往往更好打、强度也一样够。

多强算强?给几个具体数字

参照系:8 位混合字符(约 52 比特)在网站哈希泄露后,现代 GPU 阵列几小时就能破;12 位(约 78 比特)能扛好几年;16 位(约 105 比特)比攻击它的硬件寿命还长。在线猜测比这些离线数字慢得多——限流让攻击者每天只能试几千次而不是几万亿次——但哪个网站会被脱库你说了不算,所以按离线场景来生成。

这也是密码管理器改变游戏规则的原因:什么都不用背之后,每个密码都可以是 16+ 位纯随机,单个网站泄露不再波及你的其他账号。

随机数生成器 · MD5 生成器

密码长度与预估破解时间

以下是使用完整字符集(大写、小写、数字、符号)生成的密码在离线破解场景下的大致耗时估算,假设攻击者已经拿到密码哈希,用现代 GPU 硬件暴力猜解。具体时间会因网站使用的哈希算法而不同,但长度和耗时之间的规律是一致的。

长度约等熵值预估离线破解时间
8 位约 52 比特几小时到几天
10 位约 65 比特数月
12 位约 78 比特数百年
16 位约 105 比特超过宇宙年龄
20 位约 131 比特以现有算力实际不可破解

常见使用场景

  • 在有特定密码规则(最小长度、必须含符号)的网站注册新账号——用这里的对应选项直接生成,而不是手改一个密码去凑规则。
  • 同时设置多个账号或测试账户时,批量生成一批各不相同的密码。
  • 收到数据泄露通知后替换复用过的密码,受影响的每个账号各用一个新的独立密码。
  • 给路由器Wi-Fi或共享设备设置密码——足够强,同时排除易混淆字符,方便有人照着打印卡片手动输入。

为什么使用它?

注册银行账户,对方要求密码至少 12 位、必须含符号和数字?勾上对应选项,一键生成一个刚好达标的密码。

刚收到某网站的数据泄露通知,而这个密码你在好几个地方都用过?给每个用到过它的账号各生成一个全新的独立密码,不用猜到底哪些账号中招。

要给共享 Wi-Fi 设一个贴在冰箱上、客人照着打印卡片输入的密码?打开"排除易混淆字符",避免有人把 1 看成 l。

要给测试环境批量开二十个账号?每个都单独生成一个新密码,不要二十个账号都用"Test123!"。

想知道自己刚设的密码到底是真强还是只是看着长?基于熵值的强度条会给你一个真实数字,而不是随便凑够 8 位就亮绿灯的进度条。

要设一个每天手动输入的电脑登录密码或密码管理器主密码?去掉符号,把长度拉到 20 位以上——更好打,强度也不打折。

常见问题

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

在本站是安全的——生成完全在浏览器内通过 Web Crypto API 完成,没有任何网络请求携带密码。你甚至可以打开页面后断网再生成。

密码应该多长?

重要账户建议 16 位混合字符类型,12 位是可接受的下限。长度比复杂度更重要:更长的密码胜过更短但符号更多的密码。只要网站接受,全字符集的 16 位随机密码就超出了任何现实暴力破解的能力;如果因为网站限制不得不用更短的密码,就把所有字符类型都勾上作为补偿——但只要有得选,优先加长度,这也是 NIST SP 800-63B 的立场。

强度评估是什么意思?

是熵值:攻击者需要猜测的比特数,每多 1 比特破解工作量翻倍。低于 45 比特算弱,70 以上对在线账户已经很强,100 以上连针对被盗哈希的离线攻击也能抵御。

可以多个网站用同一个生成的密码吗?

不可以。一个网站泄露后,攻击者会拿泄露的密码去试所有其他网站(撞库)。每个网站生成一个独立密码,用密码管理器保存——这正是密码管理器的用途。

为什么要排除易混淆字符?

0/O、1/l/I 这些字符在很多字体里几乎一样。如果你需要念出密码或从纸上抄录,排除它们能避免恼人的错误。这会略微降低熵值,强度评估会如实反映。

随机数到底是从哪里来的?

来自浏览器的 Web Crypto API(crypto.getRandomValues),它取自操作系统的加密级安全随机数源——和生成 TLS 会话密钥用的是同一个源头。它不是 JavaScript 的 Math.random(),后者速度快但可预测,不适合任何和安全相关的场景。

公司要求密码必须"至少含2个数字和1个符号",这个工具能满足吗?

可以。勾选某种字符类型会保证结果里至少出现一个该类型的字符,所以勾上数字和符号就能满足大多数"必须包含"类规则。要求精确数量(比如"恰好2个数字")的规则很少见,遇到的话多生成几个挑一个符合的即可。

密码是不是越长一定比越复杂更强?

就抗暴力破解而言,是的——每多一位字符扩大的搜索空间,远超过多加一种字符类型带来的提升。一个 20 位纯小写密码(约94比特)就比一个用遍四种字符类型的 10 位密码(约65比特)更强。

生成的密码应该多长?

如果网站允许,从完整字符集中随机生成的 16 个字符足以抵御任何现实中的暴力破解攻击;对于普通账户,12 个字符是一个合理的下限。如果由于网站限制必须使用较短的密码,可以通过启用所有字符类型来弥补——但只要有选择,就应优先考虑长度,这也是 NIST SP 800-63B 的立场。

相关工具