密码生成器
如何创建一个强密码——以及这个生成器有何不同
密码的强度等于找到它所需的猜测次数。这个生成器用加密级随机源生成密码,精确告诉你猜测空间有多少位,并展示在三种真实攻击场景下搜索该空间需要多久——而不是一个安慰性的形容词。一切都在你的浏览器中运行:页面从不发送密码,没有账户,加载后可离线使用。
点击“生成”时发生了什么
- 1
随机数由浏览器的 Web Crypto API(crypto.getRandomValues)产生——与密码管理器使用的是同一来源。不依赖时钟或任何可复现的种子,也没有任何请求离开页面。
- 2
每个字符从你选择的字符池中均匀抽取,采用拒绝采样,因此没有任何字符比其他字符更可能出现。包含全部四类字符的 20 位密码每个位置有 90 种可能——约 130 位。
- 3
每种开启的字符类型至少保证出现一个,并被打乱到随机位置,所以密码永远不会因“必须包含数字”的规则被拒绝,而熵几乎没有损失。
- 4
显示的强度根据密码的构造方式计算,而不是根据外观。这就是为什么 5 个词的密码短语和 12 位随机字符串形态迥异,却可能显示相同的位数。
熵:唯一重要的数字
熵是攻击者必须搜索的空间大小,以位表示:每多一位,猜测次数翻倍。它取决于长度和每个位置的可能性数量——而不是结果“看起来是否随机”。从 90 个字符中取 12 位有 90¹² ≈ 2⁷⁸ 种可能;从 7,776 个词中取 5 个有 7,776⁵ ≈ 2⁶⁵ 种。下表由与上方生成器相同的引擎实时计算。
| 密码 | 位 | 在线(100/秒) | 泄露,慢哈希(10万/秒) | 泄露,快哈希(1000亿/秒) |
|---|---|---|---|---|
| 8 个小写字母 | 38 | 66 年 | 24 天 | 2 秒 |
| 8 位,所有类型 | 52 | 1 百万年 | 1 千年 | 12 小时 |
| 12 位,所有类型 | 78 | 超过宇宙年龄 | 超过宇宙年龄 | 89 千年 |
| 16 位,所有类型 | 104 | 超过宇宙年龄 | 超过宇宙年龄 | 超过宇宙年龄 |
| 20 位,所有类型 | 130 | 超过宇宙年龄 | 超过宇宙年龄 | 超过宇宙年龄 |
| 4 个词的短语 | 52 | 1 百万年 | 1 千年 | 10 小时 |
| 6 个词的短语 | 78 | 超过宇宙年龄 | 超过宇宙年龄 | 70 千年 |
| 6 位 PIN | 20 | 3 小时 | 10 秒 | 瞬间 |
时间是攻击者的最坏情况(整个空间);平均而言密码在一半时被找到。“在线”指有速率限制的登录表单。“泄露”指网站数据库被盗,攻击者在自己的硬件上针对存储的哈希猜测——速度完全取决于网站如何哈希密码,而这你看不到,所以请按快哈希的情况打算。
三种攻击者,三个答案
100/ s
在线猜测
在线猜测。攻击者把猜测输入真实的登录表单。速率限制、锁定和验证码把它限制在每秒大约一百次,往往少得多——8 位随机密码在这里已经需要几个世纪。这是 PIN 的设计场景,也是它唯一能扛住的场景。
100,000/ s
泄露,慢哈希
离线,慢哈希。网站数据库泄露,但密码用刻意缓慢的算法(bcrypt、scrypt、Argon2)存储。一块 GPU 每个哈希每秒可试数万次。60 位——10 个随机字符或 5 个词——需要几十年。
100,000,000,000/ s
泄露,快哈希
离线,快哈希。数据库泄露,密码以 MD5、SHA-1、NTLM 存储,或根本没有哈希。一套 GPU 每秒可试一千亿次。“8 位带符号”在这里几小时内就被攻破,80 位以上才是值得追求的底线——因为你永远不知道自己在哪种网站上。
随机、短语还是 PIN——该用哪个
随机字符
每个字符的熵最高。适用于密码管理器替你输入的一切:网站、应用、Wi-Fi、API 密钥。16 位全类型已超过 100 位;20 位时不存在它成为薄弱环节的场景。
密码短语
从 7,776 个词的列表中随机选词,每个词 12.9 位。用于你真正需要记住或手动输入的密码:密码管理器的主密码、笔记本登录、磁盘加密。5 个词(65 位)是合理的下限;6 个词(78 位)即使面对快速离线攻击也很从容——而且在手机上输入“correct-horse-battery-staple”比“x7#Kq$2v”容易得多。
PIN
只有数字,所以熵极小——6 位不到 20 位熵。PIN 只有在所保护的东西几次输错后会锁定或抹除时才安全:手机、银行卡、硬件密钥。绝不要把 PIN 当作网站密码复用。
站得住脚的七条规则
- 01
长度胜过复杂度。每多一个字符,空间就乘以字符池大小;要求一个符号只一次性增加几位。16 个随机字符或 6 个随机词,争论就结束了。
- 02
一个网站一个密码。当某个网站泄露时——总会有一个——复用的密码会在几小时内被拿到其他所有服务上尝试(撞库)。唯一性正是密码管理器为你买到的东西。
- 03
随机,而非机灵。把 a 换成 @、末尾加 1! 是破解工具最先尝试的。你设计的密码带着人的模式;生成的密码没有。
- 04
不要为了换而换。现代指南(NIST SP 800-63B)说:有原因时才改密码——泄露、共用设备——而不是按日历。强制轮换只会产生 Summer2024!、Autumn2024!。
- 05
开启双因素认证,有通行密钥时优先使用。强密码防猜测;第二因素防密码被钓鱼或恶意软件直接窃取。
- 06
看清在哪里输入。完美的密码输入到仿冒登录页就是被盗的密码。地址栏比符号数量更重要。
- 07
绝不要把密码发到某个服务去“检测”。本页在本地检测你的密码,你可以在浏览器的网络面板验证;任何上传密码的检测器已经把它泄露了。
看起来强、其实不强的密码
首字母大写的单词加年份:Michael1987——约 20 位,字典词加日期,离线瞬间攻破。
Leetspeak:P@$$w0rd!——所有破解工具都会自动应用这些替换;它只是穿了戏服的“password”。
键盘顺序:qwerty、1qaz2wsx、asdfghjkl——每个词表都有,各种顺序都有。
模式加网站名:Hunter2-amazon、Hunter2-netflix——一次泄露后套路就一目了然。
两个词加一个数字:bluecar42——约 35 位,GPU 上几分钟。
复用强密码。在三个网站使用的 25 个随机字符,其安全性恰好等于这三个网站中最弱的那个。
当网站拒绝密码时
“不允许特殊字符”或只允许部分——使用更多选项 → 排除的符号,或关闭符号并把长度加 4;你什么都不会失去。
“必须以字母开头”——开启以字母开头。
“最多 16 个字符”——把长度设为网站接受的最大值并保留全部四类;必须缩短时保持符号开启。
密码短语遇到“必须包含数字”——勾选给一个词加数字(或符号);一个字符就满足规则并增加几位。
需要读出来或从纸上抄写的代码——开启避免易混淆字符,让 0/O 和 1/l/I 永远不会导致猜错。
生成器只是一半的工作
记不住的随机密码只有在有东西替你记住时才有用。密码管理器为每个网站保存一个唯一密码,只在真实域名上填充(在假域名上拒绝),只需要你记住一个强主密码短语——密码短语标签页正是为此而设。
所有主流管理器——包括浏览器和手机内置的——都用从主密码短语派生的密钥加密保险库,所以保险库泄露就是对那一个短语的又一次离线攻击。6 个随机词让它达到 78 位。
网站提供通行密钥时就用它:它是一对无法被钓鱼、复用或猜测的加密密钥,把密码彻底从方程中去掉。在此之前,唯一随机密码加第二因素就是标准做法。
这个生成器做到而多数做不到的
大多数密码生成器是密码管理器的引流页。这一个是工具,按工具来评判。
| 功能 | CalculatorAI | 典型生成器 |
|---|---|---|
| 随机、密码短语和 PIN 模式 | 有 | 随机与易记 |
| 以熵(位)表示强度 | 有,按构造方式 | 彩色条 |
| 三种攻击场景下的破解时间 | 在线、慢哈希、快哈希 | 一个估计或没有 |
| 检测已有的密码 | 有,本地,带模式警告 | 很少 |
| 排除符号、避免易混淆字符、以字母开头 | 有 | 有时 |
| 生成列表并导出 | 5–50 个,复制或 .txt | 一次一个 |
| 账户、注册提示、追踪你生成的内容 | 无 | 注册按钮 |
| 加载后离线可用 | 是 | 通常 |
常见问题
这个密码生成器安全吗?
安全。密码由浏览器内置的加密随机数生成器(Web Crypto)产生,从不离开页面——没有可以携带它们的请求,没有账户,不保存结果。你可以在浏览器的网络面板确认。只有你的选项(长度、字符类型)会被本地记住,以便生成器以你离开时的状态打开。
2026 年密码应该多长?
对重要的一切:16 个含字母、数字和符号的随机字符(约 105 位),或 6 个词的密码短语(约 78 位)。由密码管理器输入时,20 个随机字符不多花任何成本。8 个字符无论怎么组合,都已无法抵御针对泄露数据库的离线攻击。
密码短语比随机密码弱吗?
按每个字符算是的;按整个密码算未必。EFF 7,776 词表中的每个随机词增加 12.9 位,5 个词是 65 位,6 个词是 78 位——相当于 12 个随机字符。短语更容易记住和输入,因此它是少数必须背下来的密码的正确选择,比如密码管理器的主密码。
破解时间估计是什么意思?
以给定速度尝试所有可能需要多久。显示三种速度,因为诚实的答案取决于攻击方式:通过登录表单猜测很慢(有速率限制),针对慢哈希的泄露数据库猜测很快,针对快哈希或无哈希则非常快。按最后一种情况打算,因为你看不到网站如何存储密码。
为什么用位表示熵而不是打分?
打分隐藏了算术。位就是算术:每一位让攻击者的工作量翻倍,40 位在 GPU 上是一次咖啡休息,80 位是几十年,128 位超出任何可预见的硬件。知道数字才能诚实地比较密码短语和随机字符串。
该把密码写下来吗?
写进密码管理器——可以,这正是它的用途。写在纸上——只写主密码短语或恢复码,放在物理上安全的地方。绝不要写进未加密同步的笔记应用、发给自己的邮件,或不把已保存密码锁在设备登录之后的浏览器。
加符号能让密码强很多吗?
一点点,且只有一次。从 62 个可能字符增加到 90 个,每个字符约多半位。从 12 位增加到 16 位约多 26 位。如果网站限制符号,改加长度反而更划算。
可以批量生成密码吗?
可以:在生成器下方选择 5、10、25 或 50,然后复制列表或下载为 .txt。每一条都按当前选项独立生成。适合批量开账户或 Wi-Fi 访客码。
术语表
- 熵
- 猜测空间的大小,以位表示。2ⁿ 种可能 = n 位。每多一位,攻击者的工作量翻倍。
- 暴力破解
- 按顺序尝试每一种可能的组合。其成本完全由熵和攻击者的猜测速度决定。
- 字典攻击
- 先尝试单词、人名、以往泄露及其常见变体。这就是“Michael1987”几秒内失守、而生成的密码能抵抗的原因。
- 撞库
- 把一次泄露中的邮箱/密码对自动拿到其他网站尝试。只有唯一密码才能防住。
- 哈希
- 网站应当存储密码的方式:单向函数的输出。慢哈希(bcrypt、Argon2)让猜测变得昂贵;快哈希(MD5、SHA-1)则不会。
- 盐
- 哈希前加到每个密码上的随机数据,使相同密码得到不同哈希,让预先计算的表失效。
- 通行密钥
- 存储在你设备上、用其生物识别或 PIN 解锁的公钥凭证。无法被钓鱼或复用;在支持的网站上替代密码。
- 双因素认证
- 密码之外的第二重证明——验证器代码、硬件密钥或通行密钥——使被盗的密码单独不够用。
相关工具
在本页面用浏览器的加密随机数生成器(Web Crypto)生成。不发送、不保存、不记录任何内容。