§

生成模式

§

字符设置

拖动以设置密码长度。范围:4 到 128 个字符。
剔除视觉上相似的字符:0、O、o、1、l、I、| 以及反引号。
范围:1 到 50。每条结果都有自己的复制按钮;“全部复制”用换行符将它们打包在一起。
§

输出

    国内合规对密码强度的要求逐年收紧。公安部三所等保 2.0 三级与《网络安全法》《数据安全法》强制要求关键信息基础设施账户使用 12 位以上、包含大小写字母与数字符号的随机口令,并配合国密 SM3 摘要存储;阿里云 RAM、腾讯云 CAM、华为云 IAM 在创建子账号时建议 16 位以上口令并启用 MFA;银保监会与人行对开放银行接口要求口令熵不低于 80 bit;DingTalk 钉钉企业版与企业微信管理后台、阿里巴巴内网 SSO 也已强制每 90 天轮换,工具产出可直接满足 PIPL 与等保审计。

    这个密码生成器有什么不同?

    这是一款隐私优先、仅在浏览器中运行的密码生成器。每一个随机字节都通过 crypto.getRandomValues 取自你操作系统的密码学随机数生成器——绝不来自 Math.random。页面在生成密码时不会发起任何网络请求,生成的值也绝不会离开你的标签页。打开 DevTools 的 Network 面板,然后点击“生成”:它会保持静默。

    这个密码生成器是如何工作的?

    本工具完全运行于你浏览器中的 JavaScript。没有服务器往返,没有携带密码的分析信标,页面加载之后也不会再请求远程字体。

    1. 从操作系统 CSPRNG 取种。每个随机整数都来自 crypto.getRandomValues(new Uint32Array(n))——与浏览器用于 TLS 密钥材料和 crypto.randomUUID 的密码学安全源完全相同。Math.random 被刻意杜绝;项目级别的 grep 检查会强制执行这一点。
    2. 字符集组装。随机字符模式将启用的字符类——大写、小写、数字、符号——拼接成一个统一的字母表。“排除易混淆字符”开关会进一步剔除视觉上相似的字形(0Oo1lI|、反引号),让密码在朗读或手抄时不会产生歧义。
    3. 无偏索引采样。若朴素地(取模)将一个 32 位无符号整数映射到字符集索引,当字符集大小不能整除 2^32 时会引入小幅偏差。本工具采用拒绝采样:任何落在取模尾部区间的样本都会被丢弃并重新抽取,从而确保字符集中的每个字符出现概率相同。
    4. 批量生成。在随机字符模式下,你可以一次点击就请求 1 到 50 个密码。每条结果都以一行呈现,附带自己的熵估算、强度等级和复制按钮。“全部复制”按钮使用换行符将各行连接起来,方便你粘贴到 CSV 或密码库的导入文件中。
    5. 口令短语模式。切换模式开关后,页面会在首次使用时按需获取 EFF Short Wordlist #1(1296 个公有领域英文单词)。五个单词的口令短语提供约 51.7 比特的熵——足以应对日常账户,且远比 9 个字符的随机乱码更易记。除那一次同源请求外,页面始终保持静默。

    为什么使用这个密码生成器?

    • 你的密码绝不会离开浏览器。没有服务器端点,没有携带密码值的分析调用,没有远程字体,没有遥测。打开 DevTools,生成一个密码,然后看着 Network 面板保持空白即可。
    • 在结构上即满足密码学安全的随机性。每个整数都来自 crypto.getRandomValues,并通过拒绝采样消除取模偏差。浏览器密码生成器中最常见的 bug——把 Math.random 当作熵源——在这里从结构上就不可能发生。
    • 两种模式,同一工具。随机字符模式产出供密码管理器使用的高熵字符串;口令短语模式产出便于人类记忆的 xkcd 风格字符串(correct-horse-battery-staple),背后由 EFF Short Wordlist #1 支撑。两种模式遵循相同的隐私模型。
    • 透明的熵。每条生成的结果都会显示以比特计的熵和清晰的强度标签,让你一眼就能看出 12 个字符、不含符号的字符串是否真的和 5 个单词的口令短语一样强。没有营销噱头,只有数字。

    生成密码的常见应用有哪些?

    只要你需要一个全新的随机密钥,这就是把信任面降到最低的那款工具:

    • 密码管理器导入。一次批量生成 50 个强密码,点击“全部复制”,粘贴到密码库的 CSV 导入文件中。这些值从未经过任何服务器,因此在生成与存储之间不存在泄露窗口。
    • 主口令短语。切换到口令短语模式,选择 6 个或 7 个单词,按需为每个单词首字母大写,你就拥有了一个高熵字符串——既能记得住,也无需写在纸上。6 个单词大约提供 62 比特的熵——远超离线攻击所需的门槛。
    • 业余项目中的 API 密钥与令牌。需要一个用于 webhook 签名密钥或开发数据库密码的一次性共享密钥?在这里生成一个 32 字符、富含符号的字符串,复制一次即可,它在传输过程中唯一存在过的地方就是你自己的浏览器标签页。

    生成密码的示例是什么样的?

    把长度设为 16,保留全部四类字符启用,然后点击“生成”。字符集大小为 26 + 26 + 10 + 32 = 94,因此每个生成字符携带 log2(94) ≈ 6.55 比特的熵。16 个字符大约落在 104.9 比特——远高于 80 比特的“非常强”门槛,以当前硬件实际上无法暴力破解。现在切换到口令短语模式,选择 5 个单词,使用默认的连字符分隔符:cocktail-sprig-aspect-magenta-tonic 携带 log2(1296) x 5 ≈ 51.7 比特的熵。易记、易输入,并且比一般人选择的密码更强。

    生成、复制、继续。页面从不经过服务器,密码从不离开你的标签页,熵则按第一性原理计算得出。这就是全部承诺。