随机密码生成器

在浏览器里生成高强度随机密码(使用 crypto.getRandomValues,不经过服务器)。除了随机字符串,还能生成好记的密码短语(拼音单词)和纯数字 PIN 码,并附带逐字朗读表,方便打电话或手写时告诉别人。

功能特点

  • 使用密码学安全的随机数(crypto.getRandomValues)并消除取模偏差,生成真正随机的密码
  • 逐字朗读表把每个字符写成“大写字母 / Apple 的 A”,打电话或手写时不会把 0 和 O、1 和 l、I 弄混
  • 随机字符串、拼音密码短语、PIN 码三种模式,如实显示熵值(bit)和暴力破解所需时间
  • 全部在浏览器里完成,生成的密码不上传服务器,也不会被保存

适用场景

注册新账号

每个网站、App 都用不同的强密码,避免一处泄露处处被盗。有的网站不允许特殊符号,关掉“符号”或只保留 _ 等允许的符号即可。

告诉家人或同事

电话里报 Wi-Fi 密码时,照着朗读表念“大写字母 Apple 的 A、数字零”,对方一次就能输对。

需要记住的密码

电脑开机密码这类每天都要输入的密码,用几个拼音单词连成的密码短语,既好记又有足够强度。

准备测试账号

开发、测试时要给一批测试账号设置初始密码,用批量生成一次就能生成多个。

隐私说明

密码完全由浏览器中的 JavaScript 生成,不会发送到任何服务器。浏览器里只保存你的生成设置(长度、字符类型等),生成的密码本身不会被保存。

常见问题

生成的密码会泄露吗?

不会。密码用密码学安全的随机数 crypto.getRandomValues 在你的浏览器里生成,既不经过网络传输,也不保存在浏览器里。网页源代码是公开的,可以自行确认没有任何网络请求。

密码设多长比较安全?

目前一般建议 16 位以上,并包含数字和符号。本工具在熵值达到 80 bit 以上时显示“非常强”,这个强度下暴力破解在现实中已不可行。网银、邮箱等重要账号建议用 20 位以上。

密码短语会不会比随机字符串弱?

按单个单词算会弱一些。强度等于“单词数 × log2(词库大小)”,本工具直接显示这个计算结果。内置的拼音词库约 280 个词,每个词约 8 bit,最多 10 个词约 81 bit(“非常强”)。比不上 16 位随机字符串(约 100 bit),但在好记的前提下已经足够安全。

“排除容易混淆的字符”会降低强度吗?

会略微降低(可选字符少了几个),但显示的熵值是按排除后的字符数计算的,依然准确。需要手动输入或口头告诉别人的密码,减少输错带来的好处通常更大。

密码里的符号输进去不对怎么办?

多半是中文输入法把符号变成了全角,例如把 ! 输成了 !、把 , 输成了 ,。输入或粘贴密码前,请先切换到英文输入状态(半角)。不想处理符号的话,也可以关掉“符号”,把长度加到 20 位以上来保持强度。

相关工具

强度

批量生成

    联系我们