免费安全密码生成器
弱密码是最简单的攻击媒介。 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 字符以下,也避免强制组合规则(必须含符号、大写等)——它们烦扰用户,却不能真正提升安全性。