跳到正文
马克工具箱

随机密码生成器

用密码学安全的随机数生成高强度密码。可以选择长度和字符类型、排除容易看错的字符,并显示密码的熵值。密码在你的设备上生成,不会发送到任何地方。

在浏览器本地运行,输入的内容和文件都不会上传

非常强熵 104 比特

按每秒 100 亿次暴力破解:比宇宙年龄还长

16

使用步骤

  1. 设置长度:保存在密码管理器里的账号,16 位以上是不错的默认值。
  2. 选择包含的字符类型,以及是否排除 I、l、1、O、0 等容易混淆的字符。
  3. 如果网站不接受某些字符(比如引号、空格),填到「排除指定字符」里。
  4. 复制密码,或一次生成多个并全部复制。

参数说明

长度
每增加一位,可能的密码数量就成倍增长。长度比符号更重要:16 位纯小写字母比 10 位混合字符更强。
排除易混字符
去掉 I、l、1、|、O、0、o 和引号,便于口头告知或从纸上抄写,会略微降低熵值。
每类字符至少出现一次
保证每种选中的字符类型至少出现一个,满足很多注册页面「必须包含大小写字母和数字」的要求。
熵
生成结果中的随机性比特数,等于长度 × log₂(字符集大小)。60 比特一般,80 以上强,100 以上非常强。

长度与字符类型的对比

仅由对应字符组成的密码的熵:

字符集 8 位 12 位 16 位 20 位
纯数字(10) 27 比特 40 比特 53 比特 66 比特
小写字母(26) 38 比特 56 比特 75 比特 94 比特
字母 + 数字(62) 48 比特 71 比特 95 比特 119 比特
四类全选(89) 52 比特 78 比特 104 比特 130 比特

多加 4 位长度,比给短密码加符号更有效。常见的 6 位纯数字支付密码只有约 20 比特,只能依靠错误次数限制来保护。

常见问题

生成的密码真的随机吗?

是的。密码来自浏览器的密码学安全随机数生成器 crypto.getRandomValues,并用拒绝采样选取字符,保证每个字符出现的概率完全相同。

你们能看到或保存我的密码吗?

不能。密码由你设备上的 JavaScript 生成,不会传输到任何地方,也不会被保存。

密码多长才够?

保存在密码管理器里的账号,16–20 位随机字符已经足够。需要记在脑子里的主密码,建议用由多个随机单词组成的长口令。

破解时间是怎么算的?

按每秒 100 亿次猜测进行暴力破解所需的平均时间,大致相当于用高性能显卡离线破解快速哈希。在线攻击网站时由于有频率限制会慢得多,但应按最坏情况考虑。

一个强密码能在多个网站通用吗?

不要这样做。一旦某个网站泄露,攻击者会拿它去所有网站尝试(撞库)。每个账号用不同的密码,交给密码管理器记住。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具