UltKit

密码生成器

生成随机密码或便于记忆的密码短语。所有内容都在您的浏览器中通过 Web Crypto 随机数生成器生成,密码不会发送给 UltKit,不会被记录,也不会被保存。强度条按位(bit)显示当前设置下的真实熵值。

强度: 非常强131 位熵

94 个符号的字符池 × 20 · 按每秒 100 亿次猜测计算,平均破解时间:4.6 × 10²¹ 年

密码通过 crypto.getRandomValues 在你的浏览器中生成,不会发送给 UltKit,也不会保存在任何地方。

熵与破解时间

离线攻击,每秒 10¹⁰(100 亿)次猜测。平均时间为完整搜索空间的一半。

熵随机字符(94 个符号的字符池)来自 7,776 词词表的单词平均破解时间
2853不到 1 秒
407455 秒
508416 小时
601051.8 年
721167,482 年
80137191.5万 年
1001682万亿 年
12820105.4 × 10²⁰ 年

长度比复杂度更重要:NIST SP 800-63B 的建议

美国国家标准与技术研究院(NIST)在 SP 800-63B 中重写了密码指南,并在 2024 年发布的第 4 版中进一步收紧。它的核心建议与过去的企业规定相反:服务应接受至少 64 个字符的密码,不应强制混用大写字母、数字和符号,不应要求用户定期更换密码,而应将新密码与已泄露密码和常见密码列表进行比对。

道理其实是算术。复杂度规则会把人引向可预测的模式,比如“Summer2024!”,而攻击者最先尝试的正是这类密码。反过来,每多一个随机字符,暴力破解的工作量就会乘以字符池的大小。从 94 个可打印 ASCII 符号中随机取字符,长度从 12 位增加到 16 位,大约增加 26 比特,猜中的难度提高约 7800 万倍。

熵值是如何计算的

熵衡量的是生成器可能产生多少个等概率的密码。对于随机密码,熵等于长度 × log2(字符池大小)。四种字符集全选时字符池有 94 个符号,每个字符约 6.55 比特,因此 16 个字符约 105 比特。排除易混淆字符会把字符池缩小到 84 个,每个字符损失不到五分之一比特。上方表格使用同样的算法,并假设离线攻击者每秒猜测 100 亿次,对于 GPU 设备攻击快速哈希来说这个数字比较合理;而 bcrypt 这类慢速哈希会让这个速度降低几个数量级。

密码短语的原理相同,只是以单词代替字符。这里内置的词表有 367 个简短常用词,每个词约增加 8.5 比特,六个词约 51 比特:容易输入和记忆,但比 16 位随机密码弱。选择“随机数字”作分隔符,每个间隔约增加 3.3 比特。如果密码短语用来保护重要内容,请使用八个词,或使用 7,776 词的 Diceware 词表,其中每个词价值 12.9 比特。

强度条的分级为:低于 40 比特为弱,40 到 59 比特为一般,60 到 79 比特为强,80 比特及以上为非常强。它评估的是生成器的设置,而不是这串字符本身,这是给密码打分唯一可靠的方式:“correct horse battery staple”在基于模式的检测器上得分很高,却是所有攻击者最先尝试的短语。

如何安全地使用生成的密码

每个账号使用不同的密码,并交给密码管理器记忆;密码重复使用会让一个网站泄露演变成多个账号被盗。请在提交注册表单之前先把密码保存到管理器中,并在支持的地方开启双重验证。如果要锁定的是文档而不是账号,可以配合 PDF加密 使用强密码短语,它会用你设定的密码加密文件。

常见问题

使用在线密码生成器安全吗?
只要密码不离开你的设备,就是安全的。本生成器完全在浏览器中运行,使用加密安全的随机源 crypto.getRandomValues;生成、复制或更改设置时不会发出任何请求,你可以在浏览器的网络面板中确认。
2026 年密码应该设多长?
如果是保存在密码管理器中的随机密码,建议 16 个字符或更长,并使用全部四种字符集,熵超过 100 比特。NIST 要求服务至少接受 64 个字符,所以长度很少成为限制。
为什么可以排除 0、O、l、1 这类易混淆字符?
这样需要朗读或照着纸上输入的密码就不容易输错。它会把字符池从 94 个符号缩小到 84 个,多加几个字符就足以弥补。
密码短语比随机密码更好吗?
密码短语更容易记忆和输入,适合主密码或设备登录。按单个字符计算,它的熵较低,所以需要更多单词:从大词表中至少取六个,或从本页内置的短词表中取八个。
生成器会记住生成过的密码吗?
不会。密码只存在于页面上,直到你生成新密码或关闭标签页。不会写入 Cookie、本地存储或服务器。