密码生成器 — 创建强随机密码
使用加密随机性生成强安全的随机密码和密码短语。自定义长度、字符集(大写、小写、数字、符号)和密码短语单词数量,以满足任何安全要求。
密码生成器
生成安全的随机密码和密码短语
0、O、1、l、I
常见问题
这个密码生成器如何创建安全密码?
本密码生成器使用Web Crypto API(crypto.getRandomValues())来生成密码学安全的随机数。与可预测的Math.random()不同,Web Crypto API从操作系统的熵源获取数据,确保生成密码中的每个字符都真正不可预测,适用于安全关键的应用程序。
什么是密码熵,它为什么重要?
密码熵以位为单位衡量密码的不可预测性。计算公式为:长度 × log₂(字符集大小),其中字符集大小是可能的字符数量。熵越高意味着可能的组合越多,使密码更难破解。例如,使用所有字符类型(95个可能字符)的16字符密码大约有105位熵,在每秒100亿次猜测的速率下需要数十亿年才能暴力破解。
我的密码应该有多长?
对于大多数在线账户,建议最少12个字符,但16个或更多字符能提供明显更好的安全性。对于加密密钥或主密码等高安全性应用,使用20个以上字符或5个以上单词的密语。每增加一个字符,可能的组合数量会呈指数级增长。
密语比随机密码更安全吗?
这取决于长度和单词数量。来自200词列表的4个单词的密语提供约31位熵,而使用所有字符类型的16字符随机密码提供约105位。但密语更容易记忆和输入。为了获得相当的安全性,在密语中使用6个以上单词。密语是需要手动输入的主密码的理想选择。
什么是歧义字符,为什么要排除它们?
歧义字符是在许多字体中看起来相似的字符:0(零)和O(大写O)、1(一)和l(小写L)和I(大写I)。排除它们可以防止阅读或手动输入密码时的混淆,这对于需要打字或朗读的密码很有用。对于存储在密码管理器中的密码,这种排除是不必要的。
我应该在密码中使用特殊字符(符号)吗?
包含!@#$%^&*等符号将字符集从62个(字母+数字)扩展到95个或更多,显著提升每个字符的熵。但某些系统限制允许使用哪些特殊字符。如果遇到限制,使用本生成器的自定义排除功能删除不允许的字符,同时尽可能保持密码强度。
我应该多久更换一次密码?
NIST(美国国家标准与技术研究院)的当前安全指南建议,除非有泄露证据,否则不要强制定期更换密码。频繁的强制更改通常会导致密码变弱。相反,对每个账户使用强唯一密码,启用双因素身份验证,并在怀疑遭到入侵时立即更换密码。
可以信任这个密码生成器吗?它安全吗?
是的。本密码生成器完全在您的网页浏览器中运行——密码永远不会发送到服务器或存储在任何地方。生成使用Web Crypto API提供密码学随机性。您可以通过查看页面源代码或使用浏览器的网络选项卡确认在密码生成期间没有数据传输来验证这一点。
存储生成密码的最佳方式是什么?
使用知名的密码管理器,如1Password、Bitwarden、KeePass或Dashlane。密码管理器使用主密码加密您的密码,并可以自动填充登录表单。永远不要将密码存储在纯文本文件、没有主密码的浏览器保存密码、便利贴或邮件草稿中。对于密码管理器的主密码,使用您能记住的强密语。
破解时间是如何估算的?
破解时间估算假设攻击者以每秒100亿次猜测的速度进行暴力攻击,这代表一个强大的GPU集群。计算方法是将可能密码的总数(2^熵)除以猜测速率。实际破解时间可能不同:针对弱哈希的离线攻击可能更快,而针对正确加盐的bcrypt或Argon2哈希的攻击会明显更慢。
关于密码生成器
密码生成器是一款免费的在线工具,使用密码学安全随机性生成强随机密码和口令短语。与人工创建的密码不同,人工密码往往遵循可预测的规律,本工具使用 Web Crypto API(crypto.getRandomValues())确保每个字符都真正随机。你可以自定义长度、字符集和排除规则,以符合任何密码策略或个人偏好。
如何创建强密码
强密码是抵御未经授权访问的第一道防线。使用密码生成器时,请遵循以下建议:
- 至少使用 16 个字符——密码越长,暴力破解所需时间呈指数级增长
- 包含所有字符类型:大写字母、小写字母、数字和符号
- 避免使用字典词汇、姓名、日期或键盘规律(如"qwerty"、"123456")
- 每个账户使用独一无二的密码——不要跨服务重复使用密码
- 对于需要手动输入的密码,可考虑使用口令短语(4 个以上随机单词)
- 将生成的密码存储在知名密码管理器中,而非试图记忆
- 尽可能启用双因素认证(2FA)以增加安全保障
密码熵详解
熵以位为单位衡量密码的随机性或不可预测性。密码生成器使用以下公式计算熵:
熵 = 长度 × log₂(字符集大小)
其中字符集大小是可能使用的字符数量。例如,一个 16 位密码使用大写字母(26)+ 小写字母(26)+ 数字(10)+ 符号(33)= 95 个可能字符,其熵为:
16 × log₂(95) ≈ 105 位
熵越高,意味着可能的组合越多,破解所需时间越长。参考标准如下:
| 熵(位) | 强度 | 适用场景 |
|---|---|---|
| < 28 | 非常弱 | 不建议任何场景使用 |
| 28 – 35 | 弱 | 仅限临时或低价值账户 |
| 36 – 59 | 一般 | 普通在线账户 |
| 60 – 79 | 强 | 电子邮件、社交媒体、金融账户 |
| 80+ | 非常强 | 加密密钥、主密码、高安全性系统 |
口令短语与随机密码的对比
口令短语是一组随机单词(如"bridge-crystal-dolphin-autumn"),可用作密码。密码生成器同时支持这两种方式:
| 对比维度 | 随机密码 | 口令短语 |
|---|---|---|
| 示例 | k7#Bm9$xR2&pL4 | Bridge-Crystal-Dolphin-Autumn |
| 可记忆性 | 难以记忆 | 更易记忆和输入 |
| 输入速度 | 较慢(混合字符) | 较快(自然单词) |
| 单字符安全性 | 每字符安全性更高 | 每字符安全性较低,但整体更长 |
| 最适合 | 密码管理器、自动填充 | 主密码、手动输入 |
来自 200 词词表的 4 个单词口令短语约提供 31 位熵,6 个单词口令短语约提供 46 位熵。如需更高安全性,使用 5 个以上单词并开启首字母大写。
常见密码错误
避免以下常见错误,这些错误会让密码更容易被猜测或破解:
- 重复使用密码 — 一旦某个账户被攻破,攻击者会在其他服务上尝试相同密码(撞库攻击)
- 使用个人信息 — 姓名、生日、宠物名和地址容易被猜到,或可在社交媒体上找到
- 简单替换 — 将"a"替换为"@"或将"o"替换为"0"是破解工具已知的常见模式
- 键盘规律 — "qwerty"、"asdfgh"和"zxcvbn"是最常见的密码之一
- 密码太短 — 不足 12 位的密码在现代硬件上可被暴力破解
- 追加数字 — 在单词后加"123"或当前年份并不能显著提升安全性
- 写下密码 — 显示器上的便利贴或电脑上的纯文本文件都不是安全的存储方式
与其费心创造一个"聪明"的密码,不如使用密码生成器创建一个真正随机的密码,然后存入密码管理器。
相关安全工具
将密码生成与以下相关工具结合,构建完整的安全工作流: