普通账号的强默认设置
长度:20 · 小写字母:开 · 大写字母:开 · 数字:开 · 符号:开
B7$kP2wM!hG9eV4rT&xQ
适用于控制台、Web 应用和大多数个人账号的实用默认设置。包含全部四类字符的 20 个字符密码,目前被认为几乎无法破解。
生成高强度随机密码,可调整字符类型。
最后更新
Coddy 让你在浏览器里编写真实代码来学习:互动课程、即时反馈,卡住时还有 AI 帮忙。
密码生成器会生成随机密码,比人自己想出来的密码难猜得多。开发者和学习者会用它来创建测试账号、管理后台、数据库凭据、各种控制台的注册账号和 CI 密钥,也会用它来练习个人安全习惯。
核心概念是熵,也就是密码有多不可预测。更长、更不可预测的密码要强得多,哪怕在人眼里两者看起来都一样随机。每个账号使用一个独立的密码,并保存在可信的密码管理器中,就能消除重复使用密码带来的大部分风险。
真正的密码生成器应该从安全的随机源获取随机数:浏览器中的 window.crypto.getRandomValues、Python 中的 secrets、Node.js 中的 crypto.randomBytes。任何基于 Math.random() 或简单时间种子随机数生成器的方案,都可预测到足以被攻击的程度。
@ 代替 a)更重要:20 个字符的全小写密码比 10 个字符带符号的密码更强。window.crypto,而不是 Math.random()。重要账号至少 16 个字符,管理员或 root 凭据 20 个以上。增加长度比其他任何调整都有效。
同时启用小写字母、大写字母、数字和符号,效果最强。如果你需要口头报出密码,或者在不同系统之间复制它,可以关闭符号。
如果密码可能需要念出来或手动输入,打开这个选项来跳过 O / 0 和 l / 1 / I。
强度指示会估算暴力破解这个密码需要多长时间。只要落在最强的区间,用于个人账号就没问题。
把密码复制到可信的密码管理器里,千万不要粘贴到聊天、邮件或便利贴上。也不要在其他账号上重复使用它。
按每秒 100 亿次猜测(现代离线破解的水平)估算的大致暴力破解时间。选择长度时可以作为粗略参考。权威指南:NIST SP 800-63B 和 OWASP Authentication Cheat Sheet。
| 长度 | 字符集 | 大致强度 |
|---|---|---|
| 8 | 小写字母 + 数字(36 个字符) | 几秒内被破解 |
| 10 | 小写字母 + 大写字母 + 数字(62) | 几小时内被破解 |
| 12 | 小写字母 + 大写字母 + 数字 + 符号(94) | 几天到几周 |
| 16 | 小写字母 + 大写字母 + 数字 + 符号 | 几个世纪 |
| 20 | 小写字母 + 大写字母 + 数字 + 符号 | 以目前的技术几乎无法破解 |
| 4 个单词 | 随机单词组成的密码短语(correct horse battery staple) | 几个世纪,而且更容易记住 |
长度:20 · 小写字母:开 · 大写字母:开 · 数字:开 · 符号:开
B7$kP2wM!hG9eV4rT&xQ
适用于控制台、Web 应用和大多数个人账号的实用默认设置。包含全部四类字符的 20 个字符密码,目前被认为几乎无法破解。
f7Bk2pQz
f7Bk2pQzM!eV9rT&hG3wXn$L
较短的密码使用相同的字符类型,但强度要弱好多个数量级。长度几乎总是赢家。
lantern-vivid-comet-nimbus-quartz
五个互不相关的随机单词,强度大致相当于 16 个字符的随机密码,但输入、念出和记忆都容易得多。
Math.random() 或简单的时间种子随机数生成器来生成密码。一定要使用平台提供的加密 API。使用密码生成器,选择至少 16 个字符的长度,并启用全部四类字符(小写字母、大写字母、数字、符号)。把结果直接保存到密码管理器里,不要靠记忆或手动输入。
足够长、足够随机、独一无二。由安全随机数生成器生成、只用于一个账号的长随机密码,就是黄金标准。
是的。生成的独立密码保存在可信的密码管理器中,是抵御撞库攻击最简单也最有效的方法。
tower-citrus-bronze-quay-pear)可以和较短但符号很多的密码一样强,而且更好用。window.crypto.getRandomValues。密码在本地生成,绝不会发送到服务器。请使用环境变量、密钥管理工具或加密保险库来存放。不要把真实凭据硬编码在源文件里,即使是私有仓库也不行。