piapia123
zh

随机密码生成

生成器

所有处理都在浏览器本地完成,数据不上传服务器

熵 = 长度 × log2(字符集大小),前提是每个字符都独立均匀随机。

    密码的强度可以算出来:熵 = 长度 × log2(字符集大小),单位是比特 —— n 比特意味着攻击者平均要试 2^(n-1) 次。这个页面把比特数直接显示出来,而不是只给一个「强」字,因为数字可比较、可推理:把长度从 8 加到 16、或把字符集从 26 个扩到 86 个,你马上能看到熵涨了多少。生成端有两条硬性保证:随机数只取自浏览器的 crypto.getRandomValues,并且每个勾选的字符类至少出现一次、最后再打乱顺序。

    功能

    • 长度 4–128 可调,小写 / 大写 / 数字 / 符号四类字符集任选
    • 实时显示熵(bit):长度 × log2(字符集大小),随选项即时更新
    • 保证每个勾选的字符类至少出现一次,最后统一打乱 —— 不会出现「前几位永远是同一类」的规律
    • 可排除易混淆字符 0 O 1 l I,适合需要手抄或电话口述的场景(熵按排除后的字符集算,不会虚高)
    • 一次最多 50 条,批量结果互不相同,可逐条复制或全部复制
    • 命中常见弱密码表时逐条标注出来,不因为「反正是随机生成的」就略过

    使用方法

    1. 设置长度(建议 16 以上)
    2. 勾选要用的字符集,至少留一组
    3. 需要手抄时勾上「排除易混淆字符」
    4. 按「重新生成」换一批,点条目右侧「复制」取走

    常见问题

    熵是什么,多少才算够?
    熵是「攻击者平均要试多少次」的度量,单位是比特:n 比特意味着平均 2^(n-1) 次尝试。经验上 40 比特以下用一块普通显卡几个小时就能撞开;60 比特以上足以抵挡在线爆破;80 比特以上按现有算力基本够不着。四类字符集、长度 16 时约 105 比特 —— 页面上显示的就是这个数,它能直接比较,而「强」这个字不能。
    生成的密码会被记录或上传吗?
    不会。随机数来自浏览器的 crypto.getRandomValues(加密安全的随机源),生成与显示都只在本机内存里进行,页面不发送任何请求。刷新页面列表就没了 —— 这也意味着它不会出现在任何服务器日志里。
    为什么不能用 Math.random 生成密码?
    它不是加密安全的随机源:内部状态可以从几百个输出里反推出来,之后每一条「随机」密码都变成可预测的。更麻烦的是这个错误不会有任何报错,生成器看起来完全正常。这个工具(以及本站所有需要随机的工具)都只用 crypto.getRandomValues。
    一次生成 50 条会不会有重复?
    不会。同一批里出现过的密码会被剔除后重新生成。以当前的取值范围(长度至少 4 位、字符集最少 8 个字符)凑出 50 条互不相同毫无压力。
    生成之后该怎么用?
    一个账号一条,不要复用;交给密码管理器保存,别记在聊天记录里;站点不接受符号时就取消符号、把长度加长 —— 长度比符号更值钱。另外,如果某个站点有长度上限(比如只准 12 位),就按上限生成并优先保证长度。

    相关工具