密码生成器
使用浏览器的安全随机源生成强随机密码。选择长度和字符类型,即可查看熵值和破解所需的时间。
此生成器使用浏览器的加密级随机数生成器(crypto.getRandomValues)来生成密码,因此不会通过网络传输任何内容。它还会显示以比特为单位的熵,以及在您选择的速度下,暴力破解者平均需要多长时间。
使用方法
- 设置长度——如果由密码管理器保存,16 个字符或更多是合理的默认值。
- 勾选要使用的字符类型;如果网站拒绝某些符号,就从符号列表中删掉。
- 对于需要手动输入的密码,可以排除易混淆的字符(O 0 I l 1 |)。
- 选择要生成的密码数量和攻击者速度。
- 按“计算”可生成新的一组。
计算公式
熵 = L × log₂(N) + log₂(P) · 平均破解时间 = 2^(熵 − 1) ÷ 每秒猜测次数
L 是长度,N 是字符池中不同字符的个数(勾选所有类型时为 26 + 26 + 10 + 32 = 94)。P 是包含所有必需类型的字符串所占的比例(容斥原理);关闭“每种至少一个”时 P 为 1。缺少某种类型的字符串会被重新抽取,因此每个允许的密码出现的概率相同,熵是精确的。
示例
勾选全部四种类型并使用默认的 32 个符号时,字符池有 94 个字符。没有“每种至少一个”规则的 16 位密码,熵为 16 × log₂(94) ≈ 104.9 比特。在每秒 100 亿次猜测的速度下,攻击者平均需要 2^103.9 ÷ 10^10 秒,约 58.9 万亿年。要求每种类型至少一个,只会把熵略微降到约 104.6 比特。
常见问题
在网页上生成密码安全吗?
这里的密码由您的浏览器使用加密级安全随机源 crypto.getRandomValues 生成。页面不会发送或保存密码,加载完成后离线也能工作。
密码应该多长?
NIST SP 800-63B(2025 年修订版)要求:密码作为唯一登录因素时至少 15 个字符,与其他因素结合使用时至少 8 个字符,并要求网站至少接受 64 个字符。使用密码管理器时,16–20 个随机字符不会增加任何成本。
符号比长度更重要吗?
长度更重要。在 94 个字符的字符池中,每多一个字符约增加 6.6 比特的熵;而对 16 位密码开启符号,只能把熵从约 95.3 比特(62 个字符的字符池)提高到 104.9 比特。允许时请使用符号,但不要为了符号而缩短密码。
时间估算基于什么假设?
假设离线攻击者以恒定速度尝试所有可能的密码,平均在走完一半时找到您的密码。bcrypt 或 Argon2 等慢哈希会大幅降低这个速度,但对于重复使用或已泄露的密码,任何熵都无法提供保护。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/password-generator/
引用此工具
kakaoCalc. (2026, November 8). 密码生成器. https://kakao.mobile/zh/tools/password-generator/
“密码生成器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/password-generator/.