[HOME] 首页 [DASH] 仪表盘 [ATK] 攻击模拟 [RES] 资源库 [DOC] 术语表 [TEST] 安全测验 [MSG] 留言板 [ADMIN] 管理后台 [USER] 登录 / 注册

暴力破解与密码安全:攻防全面解析

什么是暴力破解?


暴力破解(Brute Force)指攻击者通过穷举所有可能的密码组合来尝试破解密码。理论上,任何密码都可以被暴力破解,只是时间问题。


破解速度与密码强度的关系


破解速度参考(100亿次/秒)


密码类型4位6位8位12位
------------------------------
纯数字 (10)瞬解瞬解11秒11小时
小写字母 (26)3秒55分钟5天300年
混合字符 (62)25秒4天40年>宇宙年龄
全部字符 (94)2分钟14天300年>宇宙年龄


结论:密码长度比字符复杂度更重要!14位纯数字比8位混合字符更难破解。


暴力破解的防御措施


1. 密码策略


  • 最小长度 ≥ 12 位

  • 要求包含大小写字母、数字、特殊字符

  • 禁止使用常见弱密码


2. 账户锁定


当连续失败次数达到阈值(如5次),锁定账户一段时间:


if ($failCount >= 5) {
throw new Exception("账户已锁定,请30分钟后重试");
}

3. 多因素认证(MFA)


即使密码泄露,攻击者仍无法登录。


4. 速率限制


  • IP 级别限流

  • 账户级别限流

  • 使用 CAPTCHA 验证码


密码存储的安全实践


永远不要明文存储密码!


正确做法:使用 bcrypt 或 Argon2 哈希:


// 使用 password_hash
$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);


// 验证
if (password_verify($input, $storedHash)) {
// 登录成功
}

MSG 评论 (0)

暂无评论,来发表第一条吧