Skip to content
强密码生成器:别再自己编密码

强密码生成器:别再自己编密码 ​

人类自行编造密码是一个已被解决、但答案糟糕的问题。几乎所有人都用同一套构造 — 一个词、一个大写字母、年份、! — 而这套构造恰恰是破解工具所假定的。生成器把猜测和人都彻底从流程中移除。

本文讲解如何生成经得起考验的密码、如何检查你已有的密码,以及如何不花一个下午就修好其中最糟的那些。

为何 P@ssw0rd1! 会失败 ​

攻击者不会一个一个地猜密码。他们针对整类人群运行大规模预计算,使用的是在真实泄露事件中观察到的模式:

  • 多种语言的字典词,加上人名和品牌名
  • 键盘走位(qwerty、1qaz2wsx)及其轮换
  • 日期:年份、月份、季节
  • leetspeak 替换:a→@、i→1、o→0、e→3
  • 追加的数字加一个结尾符号

你编出来的密码正好落在其中若干张列表的交集上。现代硬件针对快速哈希每秒可尝试数十亿个候选,因此一个在人看来无法猜到的「复杂」模式,常常在几小时内甚至更短就被破解。

什么让一个密码变强 ​

长度胜于复杂度。 每多一个字符都在成倍扩大搜索空间。四个无关单词 — harbour-lantern-margarine-tricycle — 既比 X7$kq2! 更长也更好记,而且难破解得多。主密码优先用口令短语,其他地方则用随机字符串。

随机性胜于词汇量。 从完整字符集中选取的生成器产出的是没有可利用模式的字符串。从词表中选取的生成器产出的是口令短语,只要这些单词互不相关且数量够多,也 没问题。

唯一性胜于强度。 用在一个网站上的 12 字符密码没问题。同一个 12 字符密码用在 40 个网站上,就离 40 次泄露只差一步。这正是密码管理器存在的意义。

如何使用生成器 ​

以下任何一种都能离线产出真正随机的结果,全程不涉及网络:

bash
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」,而真正有用的区分是:检查一个 候选密码,还是审计 你已有的密码。

对于候选密码: 先看长度,再检查它是否在泄露名单上、是否由你的名字、网站名或当前年份推导而来。没必要把它发送到任何地方 — 长度估算和模式检查都是本地操作。

对于你的保险库: 你要的是一份 重复使用 报告,而不是强度分数。三个问题才重要:

  1. 我是否在不止一个网站上使用同一个密码? 这才是真正改变你风险的那个发现。
  2. 这个密码是否出现在已知的泄露语料库中? 被泄露过的密码无论多长都毫无价值,因为那个确切的字符串早已在破解者的词表里了。
  3. 这个密码是否在一个存放着有价值内容的账户上多年未变?

请注意,OpenKey 刻意 不会 回连 have-i-been-pwned,也不运行密码健康度筛查,而这是一个合理的默认选择:健康度筛查要么把数据发出去,要么需要一份本地的泄露语料库。不如手工做这份审计 — 从邮箱、银行和云开始,逐步向外扩展。

修复弱密码和重复使用的密码 ​

你不必一次改完所有密码。按优先级来:

  1. 邮箱 — 它能重置其他所有账户。
  2. 银行和云 — 云存储里往往躺着其余一切。
  3. 你主要的社交账户 — 密码重置流程通常会导向邮箱。
  4. 你的主密码,如果它很短或在任何地方被复用过。
  5. 其他一切,机会性地在每个网站下次提示你时顺手改掉。

一套实用工作流:

  1. 先打开自动填充,这样新登录项会被自动保存。
  2. 为每个优先账户生成新的随机密码,并在仍处于登录状态时完成。
  3. 通过生成器粘贴它,而不要手打。
  4. 同一时刻打开 2FA — 你本来就已经在安全设置里了(2FA 指南)。
  5. 在提供的地方加上 passkey(什么是 passkeys?)。
  6. 迁移完成时删除旧的明文导出文件(从 Chrome 导入)。

经验法则 ​

  • 永不重复使用。用生成器来强制执行,而不是靠自律。
  • 长度是你能拿到的最便宜的安全。
  • 不要仅仅因为一年过去了就去轮换一个强的唯一密码。没有理由的轮换只是无谓的折腾。
  • 被迫改密码时,不要在旧密码后面追加 1 或 ! — 那是一个已知字符串的可预测扩展,也正是一堆「各不相同」的密码变成同一堆密码的方式。
  • 不要为生成的密码维护一份表格。把它们留在保险库里,并保留一份加密的离线备份。

搜索数据说明 ​

密码生成是一个规模很大的独立查询簇,而不只是密码管理器的子话题。在头部词条的层面上,「password generator」吸引的关注度约为「password manager」的 36%。

人们在「strong password generator」上添加的细化词(Google Trends,全球范围,过去 12 个月):

相关查询相对关注度
google strong password generator100
random strong password generator100
random password generator99
strong passwords58
strong password generator online57
generate strong password49
password manager26
apple strong password generator17

前两位是 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+ 个随机字符为目标,主密码则用多词口令短语,并把你有限的精力花在那些能重置其他账户的账户上。

下一步 ​