知办库

密码生成器 — 在线生成高强度随机密码

使用浏览器内置的加密级随机数源生成密码,可自定义长度与字符集。所有计算在你的设备上完成,密码不会被发送到任何服务器。

点击下方按钮生成密码
强度:— 熵:—

生成选项

20
一次最多 50 条
字符集

它如何工作

  1. 根据你勾选的字符集拼出候选字符表,并按选项剔除易混淆字符。
  2. crypto.getRandomValues() 取随机字节,再用拒绝采样把它映射到字符表下标。这样每个字符出现概率严格相等,不会像 Math.random() 那样引入取模偏差。
  3. 若勾选“每类至少一个”,会先从每个已选类别各取一个字符,剩余位随机填充,最后整体洗牌,避免固定位置规律。
  4. 按字符表大小 log₂(N) × 长度 估算信息熵,给出强度参考。

本页不联网,不写 Cookie,不使用 localStorage。刷新即清空。

熵值与强度怎么读

估算熵强度说明
低于 40 bit不建议用于任何真实账号
40 – 59 bit可临时使用,重要账号不建议
60 – 79 bit多数在线账号可用
80 bit 及以上很强适合重要账号、密码管理器主密码

熵是“暴力猜解难度的理论上界”,不等于绝对安全。真正的风险通常来自复用密码、钓鱼与撞库,而不是密码本身不够随机。建议每个账号使用不同密码,并用密码管理器保存。

常见问题

生成的密码会被记录吗?
不会。页面没有任何网络请求,密码只存在于当前页面的内存与显示区域。你可以打开浏览器开发者工具的“网络”面板自行验证。
为什么长度比复杂度更重要?
熵随长度线性增长,而字符集每扩大一倍才增加 1 bit。把 12 位加到 20 位,通常比把字符集从 62 种扩到 95 种收益更大。
“每类至少一个”会降低随机性吗?
会轻微降低可选空间,但能避免生成出“全是小写字母”这类不合平台规则的结果。本页通过“先取每类一个 + 整体洗牌”把位置规律消除。
为什么不用 Math.random()?
Math.random() 不是密码学安全的,输出可被预测,且直接取模会带来偏差。本页使用 crypto.getRandomValues() 加拒绝采样。
符号导致某些网站不接受怎么办?
取消勾选“符号”,改为增加长度来补偿熵值。