密码生成完全指南:熵、长度、字符集与安全边界

更新 2026-08-08 约 13 分钟 生成器 How-to

注册新账号、轮换泄露口令、或给机器账户设初始密码时,需要的是不可预测足够长的随机串,而不是生日+姓名变体。本指南解释熵、长度、字符集与工具上的强度/历史功能,并明确:生成器只是起点,不能当唯一安全措施。

立即使用相关工具 密码生成 — 本地 CSPRNG,可调长度与字符集
打开工具 →

核心一句话

强度首先来自长度与不可预测性;字符种类是放大器。生成器帮你抽样,密码管理器帮你存储,2FA 帮你兜底——缺一就把风险留给「一个口令守全盘」。

主工具:在线密码生成器。需要单独评估已有口令时可配合 密码强度检测

1. 熵在说什么

在均匀随机、字符相互独立的简化模型下,熵近似为:

\[ H \approx L \times \log_2(N) \]

其中 \(L\) 是长度,\(N\) 是字符集大小。工具页用「所选字符池大小 × 长度」估算,并显示 熵值约 X bit。这是理想上界式估算,不是实验室测评:

因素 对真实强度的影响
真随机 vs 脑力口令 人类口令远低于理论熵
站点是否截断长度 你生成 24 位,对方只存 12 位 → 有效变短
是否禁止符号 实际 \(N\) 变小
是否可被社工 / 撞库 熵挡不住复用与钓鱼
「每类至少一个」 略降理论熵,但满足策略、避免生成失败

页面强度条综合长度档位与是否含大小写/数字/符号等打分,映射为弱 / 中等 / 强 / 极强。把它当相对指示器,不要与某次渗透测试报告划等号。

2. 长度、字符集、易混字符

工具可调参数(对照真实页面):

控件 范围 / 选项 作用
长度滑条 4~64,默认 16 优先加长
大写 A-Z 开/关 扩大 \(N\)
小写 a-z 开/关 扩大 \(N\)
数字 0-9 开/关 扩大 \(N\)
符号 `!@#$%^&*()_+-=[]{} ;:,.<>?` 等 扩大 \(N\),注意站点是否允许
排除易混字符 去掉 `0 O l I 1 ` 等 降低朗读/印刷错误,略减 \(N\)
每类至少 1 个 保证已选类别各出现 适配「必须含特殊字符」策略
批量 1~10 一次多条,写入本地历史

快捷预设:

预设 典型设置 适用
简易 12 位 较长但可关符号 低敏临时
强密码 16 位 四类 + 排除易混 + 每类至少一个 默认推荐起点
极强 24 位 更长 邮箱、金主账号、共享高权限
纯数字 PIN 仅数字 仅当系统强制 PIN;熵低,须限长尝试

随机源:crypto.getRandomValues 拒绝采样取下标,避免朴素取模偏差;打乱亦用安全随机。

3. 好结果的标准与反例

更好:

  • 长度 ≥ 16(高敏 ≥ 18~24)
  • 四类字符(若目标站允许)
  • 每个站点不同
  • 只存在密码管理器或系统钥匙串
  • 开启 2FA

更差(反例):

  • Password1! 式可预测
  • 整句歌词+年份
  • 同一口令登录邮箱与论坛
  • 生成后发到微信群「大家用这个」
  • 用 UUID 或手机号当密码
  • 关掉所有字符类只剩 4 位数字还觉得「有工具就安全」

4. 逐步操作

  1. 打开 /tools/generator/password-generator
  2. 选预设或拖动长度;勾选字符类型。高敏账号优先「极强 24 位」。
  3. 按需开启「排除易混」「每类至少 1 个」。
  4. 生成密码;查看强度条与熵值。
  5. 复制密码,立刻粘贴到密码管理器或注册表单;避免长时间留在屏幕。
  6. 批量时用历史区复制/使用;公共电脑用完点 清空 历史(历史存 localStoragepwdHistory_v2)。
  7. 若要评估已有口令强弱,另开 密码强度,不要把生产口令长久留在任何网页框。

能力边界

  • 支持: 本地生成、预设、熵与强度指示、批量、本地历史、主题切换。
  • 不替代: 密码管理器同步加密库、泄露监测、企业 SSO、强制 2FA、服务端加盐哈希存储。
  • 历史在浏览器本地,同一台机器的其他用户配置文件可能可见——共享电脑慎用历史。

5. 常见问题与策略冲突

现象 原因 处理
提示请至少选择一种字符类型 全关掉了 勾选至少一类
站点拒绝符号 字符集含站点禁用符 关符号或改用站点允许列表(需人工改)
站点说太短 最大长度被策略卡住 在允许范围内取最长
强度显示「弱」 过短或类别少 加长并启用多类
复制失败 权限/非安全上下文 手动选择复制
历史里还有旧密码 localStorage 未清 点清空;公共机用完清理
与强度工具结论不一致 算法与词库不同 以更严的为准,或看是否脑力口令
生成器很强但账号仍被盗 复用、钓鱼、无 2FA、库拖库 补管理器与 2FA,查邮件找回链

6. 真实工作场景

场景 A:个人邮箱主账号

用 24 位四类字符,仅存管理器,强制开启 App 密码/2FA。邮箱被破等于「重置一切」的钥匙,长度不要省。

场景 B:给同事发「临时后台密码」

生成 16 位,经加密通道或一次性链接发送,要求首次登录修改;不要用明文邮件长期有效。临时账号设过期时间。

场景 C:IoT / 弱策略设备

设备只允许 8 位且无符号:在限制内取满长度 + 多类(若允许),并隔离网络,不把同一口令用于云账号。

场景 D:CI 机器账户

用生成器产随机串,写入密钥管理(Vault 等),轮换有记录。禁止写进仓库;Hash 工具只用于校验演示,不把明文密码拿去「再哈希上传群」。

场景 E:用户教育演示

投影用现场生成后作废的例子讲熵;禁止用真实员工口令做课件。

场景 F:与 UUID 分工

资源 ID 用 UUID 生成器;登录密钥用本工具。两者都「随机」但威胁模型不同。

7. 勿当唯一安全措施

分层示意:

  1. 随机长口令 ← 生成器在这里
  2. 每站不同 + 管理器
  3. 2FA / Passkey
  4. 服务端:加盐慢哈希、锁定、异常登录
  5. 泄露响应:监控、强制重置

只做第 1 步而在所有网站复用,一次拖库可连坐。只开 2FA 但口令是 123456 仍可能被会话与恢复流程打穿。生成器不是免责声明打印机。

9. 落地清单

  • [ ] 高敏账号 ≥ 18~24 位且唯一
  • [ ] 已写入密码管理器而非备忘录明文
  • [ ] 已开 2FA 或通行密钥
  • [ ] 公共电脑已清空历史与剪贴板
  • [ ] 未把口令提交到 Git / 截图 / 工单
  • [ ] 服务端存储非可逆明文
  • [ ] 复用口令清单已计划轮换

常见问题

16 位和 12 位差多少?

在字符集相同且真随机时,多 4 位按 \(\log_2(N)\) 倍增搜索空间。对在线限速攻击,长度与锁定策略一起生效;对离线哈希爆破,长度往往更关键。

为什么要排除 0 和 O?

减少支持场景下的人口述错误。代价是 \(N\) 略降;可用更长一点补偿。

「每类至少一个」会降低安全性吗?

会轻微约束分布,但通常可忽略,且能通过愚蠢的组成策略检查。真正的风险是过短与复用。

浏览器生成能信吗?

现代浏览器的 crypto.getRandomValues 适用于口令生成。更大风险在:肩窥、剪贴板同步、恶意扩展、假冒钓鱼站。请认准你自己打开的工具 URL。

历史记录会上传吗?

设计为 localStorage 本地保存最近若干条。仍可能被同机其他人或恶意脚本读取——敏感环境禁用历史或用完清空。

PIN 预设为何存在?

现实中有的系统只接受数字。它不表示 PIN 等于强密码;应配合尝试次数限制与物理保管。

可以表达成骰子口令(diceware)吗?

本工具是字符抽样模型。骰子词表口令也很好,尤其易记;请用合格词表与足够词数,并仍配管理器与 2FA。

强度条满了是否绝对安全?

否。钓鱼、会话劫持、备份泄露、SIM 交换不看你的熵条。生成器解决「口令是否好猜」这一层。

生成、交付与轮换的边界

生成密码只是生命周期的第一步。创建账户时应立即把结果交给密码管理器,避免先复制到聊天工具再转存;交付给同事时使用管理器的共享保险库或一次性链接,不要把密码写进工单标题。发生人员离职、权限变化或疑似泄露时,应按账户重要程度安排轮换,并同步撤销旧会话、恢复码和 API Token。强度条只能估计猜测成本,不能替代最小权限、登录告警、双因素认证和备份恢复演练。

备份码与恢复流程

账户安全还包括恢复路径。生成强密码后,应确认恢复码、备用邮箱和管理员接管流程能够独立工作,并把恢复码放在与密码不同的安全位置。不要把恢复码和密码一起放在同一张截图或同一个明文文件里;否则主存储泄露时,攻击者会同时获得登录和恢复能力。

继续浏览

用「强密码 16 位」生成一条,只粘进密码管理器测试库;再打开强度工具对比手动弱口令,建立直觉。