在线密码生成器

基于 crypto.getRandomValues 密码学安全随机源生成高强度密码。密码仅在本地生成、不经过网络,请生成后立即保存到你的密码管理器。

密码在本地生成,不经过网络,请立即保存到你的密码管理器。刷新或关闭页面后不会保留任何记录。
请先生成密码

密码生成器使用说明

账号安全的第一道防线就是密码本身。统计表明,大量账号被盗并非网站被攻破,而是用户使用了弱密码(123456、password、生日日期)或在多个网站复用同一密码——一旦某个小站泄露,攻击者便会用同一组凭据「撞库」扫荡你在其他平台的账号。对抗撞库最有效的办法就是:每个网站使用随机、唯一、足够长的密码,而人脑既编不出也记不住几十个这样的密码,所以我们需要工具来生成、需要密码管理器来保存。

使用步骤:

  • 第一步:拖动滑块选择密码长度(8-64 位,建议 16 位以上;重要账号建议 20 位以上)。
  • 第二步:勾选字符集。绝大多数网站接受大写、小写、数字和符号;如果目标网站对符号有限制,取消符号勾选即可。「排除易混淆字符」适合需要手抄或口头转述的场景。
  • 第三步:选择生成数量(1-10 个),点击「生成密码」。每个密码独立一行,右侧各带复制按钮。
  • 第四步:查看强度条与文字评估(弱 / 中 / 强 / 极强),确认满足要求后立即复制保存。对结果不满意可点「重新生成」。

安全说明:密码由浏览器内置的 crypto.getRandomValues 在你的设备上生成,不经过网络、不上传、不记录,断网也能使用。也正因如此,页面不会替你保存任何密码——生成后请第一时间保存到密码管理器,刷新页面即无法找回。

常见问题(FAQ)

为什么不用 Math.random 生成密码?
Math.random 是伪随机数生成器,输出序列可被预测和复现,不适合安全场景。本工具使用浏览器提供的 crypto.getRandomValues 密码学安全随机源,其随机性满足生成密钥和密码的安全要求。
密码强度中的「熵」是什么意思?
熵衡量密码的不确定性,单位是比特(bits)。计算公式为:密码长度 × log2(字符集大小)。例如 16 位密码、使用 95 个可打印字符时,熵约为 16 × 6.57 ≈ 105 比特。熵每增加 1 比特,暴力破解的难度就翻一倍。
生成的密码会被上传或记录吗?
不会。密码完全在你的浏览器中通过 Web Crypto API 本地生成,不经过网络、不写入任何服务器或日志。但正因如此,密码生成后不会保存在任何地方,请立即复制并保存到你的密码管理器。
「排除易混淆字符」是排除哪些字符?
排除数字 0、大写 O、数字 1、小写 l 和大写 I 这五个字符。它们在部分字体中外观几乎相同(如 l 与 I、0 与 O),手抄或口头转述密码时极易出错,排除后密码更易辨认。
如何安全地保存和管理密码?
推荐使用口碑良好的密码管理器(如 Bitwarden、1Password、KeePass)集中保存,并为主密码设置足够长且唯一的口令、开启两步验证。避免在多个网站重复使用同一密码,也不要把密码明文写在便签或聊天记录里。

相关知识:熵、随机性与密码安全

熵决定了暴力破解的代价。攻击者破解密码的本质是在字符空间中枚举,一个长度为 L、字符集大小为 N 的随机密码共有 N^L 种可能,其熵为 L × log2(N) 比特。以本工具默认配置为例:16 位、四类字符全开(约 95 个字符)时熵超过 105 比特——假设攻击者每秒能尝试一万亿次,穷举完整个空间所需的时长也远超宇宙年龄。而一个 8 位纯小写密码的熵只有约 37.6 比特,现代显卡集群数小时即可穷举。这就是「长度优先于复杂度」的原因:每加一位密码,安全性翻倍。

「真随机」与「伪随机」的区别。Math.random 这类伪随机数生成器由确定性算法驱动:只要内部状态相同,输出序列就完全相同,安全研究者已经多次演示过预测它的输出。而 crypto.getRandomValues 从操作系统的熵池(键盘时序、硬件噪声等)获取种子,由密码学安全的 CSPRNG 生成,即使部分输出被知晓也无法推算其他输出。生成密码、密钥、UUID 等安全敏感值时必须使用后者。本站的 UUID 生成器 同样基于 crypto API 生成 v4 随机标识;如果你还需要给自己兜底生成一个「恢复码式」的随机串,也可以配合 随机数生成器 或 哈希计算器 验证数据的完整性与唯一性。

🍪 隐私提示 我们仅收集提供服务所必需的信息(详见《隐私政策》),不出售、不追踪。