密码生成器

立即生成强随机密码。

免费安全密码生成器

弱密码是最简单的攻击媒介。 Dokall 生成具有可配置长度、大写、小写、数字和符号的加密随机密码。

使用它来创建帐户密码、API 测试凭据或临时访问令牌。生成完全在您的浏览器中运行 - 密码永远不会发送到任何服务器。

怎样才算强密码?

强密码是指在合理时间内无法被猜出或破解的密码。强度取决于两个因素:长度和字符多样性。

仅使用小写字母(每位 26 种可能)的 12 位密码有 26^12 种组合——约 95 万亿。同时使用小写、大写、数字和符号(每位约 95 种字符)的 12 位密码有 95^12 种组合——约 540 千垓。后者破解难度高出 50 亿倍以上。

不过,长度比复杂度更重要。20 位纯小写密码(26^20)远强于包含全部字符类型的 12 位密码(95^12)。这也是现代安全建议更推崇长口令短语、而非短而复杂密码的原因。

密码熵值说明

熵以比特为单位衡量密码的随机性。具有 n 比特熵的密码有 2^n 种可能组合。比特越多,越难破解。

一个随机小写字母约增加 4.7 比特熵(log2(26))。来自全部可打印 ASCII 字符集的随机字符约增加 6.6 比特(log2(95))。来自完整字符集的 16 位随机密码约有 105 比特熵——远超当前技术下暴力破解所能达到的范围。

关键在于:这假定密码是真正随机的。若用户选择看似随机的密码如 Tr0ub4dor&3,实际熵会低得多,因为它遵循可预测的替换模式(o 变 0、a 变 4),密码破解工具会专门尝试这些模式。只有密码学安全的随机生成才能达到完整的理论熵。

密码与口令短语

像 correct-horse-battery-staple 这样的口令短语,使用由分隔符隔开的随机词典单词。在 7,776 词词典(标准 Diceware 列表)下,四个随机单词约提供 51 比特熵;六个单词约 77 比特。

同等强度下,口令短语比随机字符串更易输入和记忆。四个单词组成的 25 字符口令短语,比 12 位随机字符串更实用,即便后者可能有更高的每字符熵。

对保存在密码管理器中、从不手动输入的密码,最大熵的随机字符串最理想——你无需记住它们。对需要经常输入的密码(设备登录、主密码),使用 5–6 个随机单词的长口令短语,是安全与可用性的良好平衡。

常见密码错误

跨站点复用密码是危害最大的错误。一旦某个站点被攻破,攻击者会用相同凭据尝试银行、邮箱和社交媒体账户(凭据填充)。密码管理器可为每个账户生成唯一密码,从而消除这一风险。

使用个人信息(生日、宠物名、地址)会使密码易受定向攻击。社交媒体资料往往恰好包含人们写进密码的信息。

可预测模式——末尾加数字、用 @ 代替 a、只大写首字母——破解者非常熟悉。这些替换几乎不增加安全性。若基础词在词典中,替换后的版本也很可能出现在破解词表里。

把密码写在便签上、在聊天中分享或通过邮件发送,都会带来密码强度无法弥补的风险。请使用密码管理器安全地共享凭据。

安全存储密码(面向开发者)

切勿以明文存储密码。使用专为密码存储设计的慢速加盐哈希算法:bcrypt、scrypt 或 Argon2id。这些算法故意设计为缓慢,即使哈希库被盗,暴力破解也变得不切实际。

SHA-256、MD5 等快速哈希不适合密码。现代 GPU 每秒可计算数十亿次 SHA-256 哈希,多数密码几小时内即可破解。成本因子为 12 的 bcrypt 可将攻击者限制在每块 GPU 每秒数千次尝试。

每个密码务必使用唯一随机盐。盐与哈希一并存储(bcrypt 会自动包含)。不加盐时,相同密码产生相同哈希,攻击者可用预计算彩虹表一次破解所有实例。

设置最小密码长度(NIST 建议至少 8 个字符,12+ 更好),并对照已泄露密码列表检查(Have I Been Pwned API 可提供)。避免将最大长度限制设在 64 字符以下,也避免强制组合规则(必须含符号、大写等)——它们烦扰用户,却不能真正提升安全性。

常见问题

密码应该多长?
对有速率限制保护的账户(多数在线服务),至少 12 个字符。对保护高价值目标或离线加密的密码(攻击者可无限猜测),使用 16+ 随机字符或 5–6 词口令短语。NIST 目前建议最少 8 个字符,但多数安全专家建议 12+。
随机密码比口令短语更好吗?
在合适长度下两者可以同样安全。16 位随机密码约有 105 比特熵;6 词 Diceware 口令短语约有 77 比特。对存在管理器中、从不手动输入的密码,随机字符串最理想。对经常输入的密码,口令短语更易记忆和输入,安全性也相当。
在线生成密码安全吗?
Dokall 使用 Web Crypto API(crypto.getRandomValues)完全在浏览器中生成密码。密码不会发送到任何服务器,也不会被存储。随机性来自操作系统的密码学随机数生成器,与密码管理器和安全工具使用的来源相同。
密码里应该使用特殊字符吗?
特殊字符将字符集从约 62(字母 + 数字)扩大到约 95(加上符号),每个字符约增加 0.6 比特熵。这有帮助,但多加 2–3 个字符长度也能获得相同收益,且可用性更好。若使用密码管理器,可包含符号,因为你无需输入。若要自己输入,更长且不含符号,与更短但含符号同样有效。
多久应该更换一次密码?
当前 NIST 指南(SP 800-63B)不建议强制定期更换密码。频繁更换会导致更弱的密码(用户会选择可预测的变体)。仅在有泄露证据时更换——数据泄露通知、可疑账户活动,或与不再需要访问的人共享了凭据。
什么是密码熵?
熵以比特为单位衡量密码的随机性。具有 n 比特熵的密码有 2^n 种可能组合。来自 95 个可打印 ASCII 字符的真正随机 8 位密码约有 52.6 比特。熵越高,越能抵抗暴力破解。每多一比特,攻击者需尝试的组合数就翻倍。
密码管理器如何工作?
密码管理器将所有密码存储在加密保险库中,由一个主密码保护。保险库使用由主密码经慢速哈希算法(PBKDF2、Argon2)派生的密钥加密。你只需记住主密码——管理器会为每个网站生成、存储并自动填充唯一的随机密码。