设计一个支持千万级用户(10M+ Users)的登录系统,不仅仅是写一个 SQL 查询那么简单。在这个量级下,系统需要兼顾安全性、高性能、高可用性、可扩展性以及用户体验。 以下是设计此类系统时必须考虑的核心要点,按优先级分类: 一、 安全性设计 (Security) —— 最核心的基础 登录系统的首要任务是保护用户资产。 1. 密码存储 (Password Storage) 绝对严禁明文存储。 哈希算法:不要使用 MD5 或 SHA-1(易被彩虹表破解)。应使用专为密码设计的慢哈希算法,如 bcrypt, PBKDF2, scrypt 或 Argon2。 加盐 (Salting):每个用户必须有独立的随机 Salt,防止批量破解。 2. 传输安全 (Transmission) 全站 HTTPS:强制使用 TLS/SSL 加密传输,防止中间人攻击(MITM)窃取账号密码或 Token。 3. 防攻击机制 (Anti-Attack) 防暴力破解:限制同一 IP 或同一账号在单位时间内的失败尝试次数(如:5分钟内错5次锁定账号或弹出验证码)。 防撞库 (Credential Stuff...