强密码生成器:别再自己编密码
人类自行编造密码是一个已被解决、但答案糟糕的问题。几乎所有人都用同一套构造 — 一个词、一个大写字母、年份、! — 而这套构造恰恰是破解工具所假定的。生成器把猜测和人都彻底从流程中移除。
本文讲解如何生成经得起考验的密码、如何检查你已有的密码,以及如何不花一个下午就修好其中最糟的那些。
为何 P@ssw0rd1! 会失败
攻击者不会一个一个地猜密码。他们针对整类人群运行大规模预计算,使用的是在真实泄露事件中观察到的模式:
- 多种语言的字典词,加上人名和品牌名
- 键盘走位(
qwerty、1qaz2wsx)及其轮换 - 日期:年份、月份、季节
- leetspeak 替换:
a→@、i→1、o→0、e→3 - 追加的数字加一个结尾符号
你编出来的密码正好落在其中若干张列表的交集上。现代硬件针对快速哈希每秒可尝试数十亿个候选,因此一个在人看来无法猜到的「复杂」模式,常常在几小时内甚至更短就被破解。
什么让一个密码变强
长度胜于复杂度。 每多一个字符都在成倍扩大搜索空间。四个无关单词 — harbour-lantern-margarine-tricycle — 既比 X7$kq2! 更长也更好记,而且难破解得多。主密码优先用口令短语,其他地方则用随机字符串。
随机性胜于词汇量。 从完整字符集中选取的生成器产出的是没有可利用模式的字符串。从词表中选取的生成器产出的是口令短语,只要这些单词互不相关且数量够多,也 没问题。
唯一性胜于强度。 用在一个网站上的 12 字符密码没问题。同一个 12 字符密码用在 40 个网站上,就离 40 次泄露只差一步。这正是密码管理器存在的意义。
如何使用生成器
以下任何一种都能离线产出真正随机的结果,全程不涉及网络:
openkey gen -l 24 # 24 characters
openkey gen -l 32 -a -c # avoid confusing characters, copy to clipboard
openkey gen -l 20 --no-symbols # for sites that reject symbols
openkey --json gen -l 24 # machine-readable output在应用中,打开 设置 → 密码生成器 来设定默认长度与字符类,或者直接在条目表单中使用生成器。对于你打算长期保留的密码,在线生成器值得回避:你是在向一个陌生人的服务器索要一个秘密,而你无法核实它拿这个秘密做了什么。
选择长度
| 场景 | 长度 |
|---|---|
| 你的主密码 | 4–6 个无关单词,或 20+ 个字符 |
| 邮箱、银行、云账户 | 20+ 个随机字符 |
| 普通网站账户 | 16+ 个随机字符 |
| 任何有密码过期策略的东西 | 只要唯一,12–14 就够了 |
强度检查
搜索者不断在问「password strength checker」和「password strength tester」,而真正有用的区分是:检查一个 候选密码,还是审计 你已有的密码。
对于候选密码: 先看长度,再检查它是否在泄露名单上、是否由你的名字、网站名或当前年份推导而来。没必要把它发送到任何地方 — 长度估算和模式检查都是本地操作。
对于你的保险库: 你要的是一份 重复使用 报告,而不是强度分数。三个问题才重要:
- 我是否在不止一个网站上使用同一个密码? 这才是真正改变你风险的那个发现。
- 这个密码是否出现在已知的泄露语料库中? 被泄露过的密码无论多长都毫无价值,因为那个确切的字符串早已在破解者的词表里了。
- 这个密码是否在一个存放着有价值内容的账户上多年未变?
请注意,OpenKey 刻意 不会 回连 have-i-been-pwned,也不运行密码健康度筛查,而这是一个合理的默认选择:健康度筛查要么把数据发出去,要么需要一份本地的泄露语料库。不如手工做这份审计 — 从邮箱、银行和云开始,逐步向外扩展。
修复弱密码和重复使用的密码
你不必一次改完所有密码。按优先级来:
- 邮箱 — 它能重置其他所有账户。
- 银行和云 — 云存储里往往躺着其余一切。
- 你主要的社交账户 — 密码重置流程通常会导向邮箱。
- 你的主密码,如果它很短或在任何地方被复用过。
- 其他一切,机会性地在每个网站下次提示你时顺手改掉。
一套实用工作流:
- 先打开自动填充,这样新登录项会被自动保存。
- 为每个优先账户生成新的随机密码,并在仍处于登录状态时完成。
- 通过生成器粘贴它,而不要手打。
- 同一时刻打开 2FA — 你本来就已经在安全设置里了(2FA 指南)。
- 在提供的地方加上 passkey(什么是 passkeys?)。
- 迁移完成时删除旧的明文导出文件(从 Chrome 导入)。
经验法则
- 永不重复使用。用生成器来强制执行,而不是靠自律。
- 长度是你能拿到的最便宜的安全。
- 不要仅仅因为一年过去了就去轮换一个强的唯一密码。没有理由的轮换只是无谓的折腾。
- 被迫改密码时,不要在旧密码后面追加
1或!— 那是一个已知字符串的可预测扩展,也正是一堆「各不相同」的密码变成同一堆密码的方式。 - 不要为生成的密码维护一份表格。把它们留在保险库里,并保留一份加密的离线备份。
搜索数据说明
密码生成是一个规模很大的独立查询簇,而不只是密码管理器的子话题。在头部词条的层面上,「password generator」吸引的关注度约为「password manager」的 36%。
人们在「strong password generator」上添加的细化词(Google Trends,全球范围,过去 12 个月):
| 相关查询 | 相对关注度 |
|---|---|
| google strong password generator | 100 |
| random strong password generator | 100 |
| random password generator | 99 |
| strong passwords | 58 |
| strong password generator online | 57 |
| generate strong password | 49 |
| password manager | 26 |
| apple strong password generator | 17 |
前两位是 Google 和 Apple 账户的内置生成器 — 人们找的是自己平台已经附带的那个生成器,而不是某个第三方网站。热度 57 的「strong password generator online」是需要小心对待的那一组:在线生成器就是一个第三方,在替你处理一个你打算长期保留的秘密。
另一个独立的查询簇清楚地体现了审计意图。「password strength」下的相关查询:password strength checker(100)、strength check(51)、strength tester(41)、strength tool(28)、strength generator(27)。「Checker」和「tester」这类措辞压倒性地是在说验证一个你已有的密码,因此对于任何不想把数据发出去的人来说,手工审计都胜过应用内的健康度筛查。
Method: Google Trends,全球范围,过去 12 个月,2026 年九月提取。数字为归一化的相对关注度(0–100),而非搜索量。
一分钟版本
长度胜于复杂度,随机性胜于词汇量,唯一性又胜于两者两者。用本地工具而不是网站来生成,普通账户以 16+ 个随机字符为目标,主密码则用多词口令短语,并把你有限的精力花在那些能重置其他账户的账户上。
