什么是暴力破解?
暴力破解(Brute Force)指攻击者通过穷举所有可能的密码组合来尝试破解密码。理论上,任何密码都可以被暴力破解,只是时间问题。
破解速度与密码强度的关系
破解速度参考(100亿次/秒)
结论:密码长度比字符复杂度更重要!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)
暂无评论,来发表第一条吧