密码生成器
使用加密安全的随机数(Web Crypto API)生成密码。可精细控制字符类型、长度和相似字符排除,并附带强度计量器。
完全免费
无需注册
浏览器内完成
基于开源
5 种语言
深色模式
使用加密 RNG (crypto.getRandomValues),密码不会离开浏览器。
关于安全性
- 此工具使用
crypto.getRandomValues()生成加密安全的随机数。 - 生成完全在浏览器内完成,密码不会发送到服务器。
- 推荐 12 字符以上、启用全部 4 种字符、不排除相似字符;重要用途建议 16 字符以上。
- 生成后请务必保存到安全位置(如密码管理器)。
已复制
如有问题或显示异常,请通过以下方式联系我们: 联系表单。
📖 常见的坑
通过 Web Crypto API 的 crypto.getRandomValues(),用密码学安全的随机源生成密码,可控制字符集、长度与相似字符的排除,并给出熵值估算。处理全部在浏览器内完成,生成的密码不会被传输。强度条显示的是熵(需要多少次猜测的量度),而不是「实际有多难被攻破」。真正的安全,取决于你把它存在哪里、怎么存,以及是否重复使用。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| 以为「越复杂就越强」 | 熵由字符集大小与长度共同决定,但二者的贡献方式不同:增加字符种类只是让每个字符多出几比特,而每增加一个字符,就把这份「每字符比特数」整个再加一遍。实际算一下就会发现,十二个小写字母(约 56 比特)强过用满四类字符的八位密码(约 52 比特)。尽管如此,许多网站仍要求「大写、数字、符号各至少一个」,结果是催生出大量像 Password1! 这样好记又脆弱的密码。 |
请优先考虑长度。使用密码管理器就无需记忆,因此二十位以上的随机字符串不会带来任何代价——无论多长,复制粘贴的功夫都一样。对于必须记住的少数几个(设备登录、管理器主密码),由四到六个互不相关的单词组成的口令短语兼顾了好记与强度。NIST SP 800-63B 在 2017 年的修订中,把「组成复杂度要求」和「强制定期更换」双双移出了推荐,转而要求长度,以及与已泄露密码黑名单的比对。如果你是制定要求的一方,请把它们替换成这两条。 |
| 排除相似字符反而变弱了 | 排除 0 与 O、1 与 l 和 I,能减少误读,但字符集也随之缩小,每个字符的熵下降——从 62 个字母数字里去掉 5 个还剩 57 个,十六位密码总共损失两比特出头。损失本身很小;问题在于「当初为什么要排除」很容易被遗忘。对于只会复制粘贴的密码,排除相似字符换不来任何可读性,白白损失了熵。 |
请按用途切换。排除相似字符只有在人要用眼睛读这些字符时才有意义:打印出来交给别人、口头念给对方、在另一台设备上手工输入——比如邮寄的初始密码、现场配置的设备。如果是存进密码管理器、靠粘贴使用,就关掉排除,把省下的余量换成多一两位长度。要点是先确定「会不会有人手工输入」,再据此选择设置;仅因「感觉更安全」就打开排除,是与目的背道而驰的选择。 |
| 生成了强密码,却到处重复使用 | 被重复使用的密码,其强度由保存它的所有网站中最弱的那一个决定。无论多长多复杂,只要有一个网站以明文保存并发生泄露,这串字符就成了其他所有账号的钥匙。这就是撞库:拿泄露的邮箱与密码组合,自动到其他服务逐个尝试。成功率只有百分之几,但尝试是自动化的,在数千万组的基数上,被攻陷的账号数量相当可观。你生成的密码有多强,对这种攻击毫无防御作用。 | 请为每个网站使用不同的密码——这在实践上等同于「使用密码管理器」。人记不住几十串随机字符,因此要真正做到「不重复使用」,除了管理器别无他法。在此之上,效果更大的是开启两步验证(2FA):密码即便泄露,仅凭它也进不去了。务实的推进顺序是:先给重要账号(邮箱、银行、密码管理器本身)开启 2FA,之后再逐步消除密码复用。请把邮箱账号放在最优先:其他所有服务的密码重置邮件都会寄到那里,它实质上就是所有账号的总钥匙。 |
生成的密码会留在比你以为的更多的地方。一旦复制,它就进入剪贴板;若开启了 Windows 的剪贴板历史,或 macOS 与 iPhone 的通用剪贴板,它还会同步到其他设备——而且原则上任何应用都能读取剪贴板。真正重要的密码,请使用密码管理器内置的生成功能:生成与保存在同一个应用内完成,既不经过剪贴板也不经过浏览器。本页真正有价值的场合,是用不了管理器的时候:设备初始配置、要交给别人的临时凭据、测试数据。还有一条值得随身携带的实用判断:当注册页面告诉你「不能使用符号」「最长 12 位」时,那就是该站点以明文或近似明文形式保存密码的迹象。正确做过哈希的话,输入的长度与字符种类并不影响哈希的长度,因此没有任何理由去限制它们。在这类站点上,使用一个别处从不使用的密码,就格外重要。
📖 使用方法
-
1
设置字符类型和长度选择字符类型并调整长度滑块(4~64)。
-
2
设置数量并点击生成输入数量(1~50)并点击生成。
-
3
复制并保存密码点击复制按钮,然后保存到密码管理器。
❓ 常见问题
此工具真的使用安全随机数吗?
是。使用 Web Crypto API 的 crypto.getRandomValues()。
排除相似字符选项是什么?
排除 0/O/o、1/l/I 等容易混淆的字符。
生成的密码会发送到服务器吗?
不会。密码生成完全在浏览器中运行。
🐛 此工具出现问题了吗?
免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。
✅
感谢您的反馈!
已送达运营者,将用于改进工具。