安全岗位面试题更新 2026-08-05

在系统设计中,用户密码的安全存储应当遵循哪些具体原则?请解释为何禁止以明文形式保存用户密码。

风险判断安全意识技术原理

考察说明

考查对密码安全存储核心机制及其必要性的理解。

回答思路

  1. 【回答框架 1】密码存储的核心是使用不可逆的哈希算法,并配合加盐(salt)处理。加盐是指在每个用户密码哈希前附加随机唯一值,防止彩虹表攻击和相同密码产生相同哈希。
  2. 【回答框架 2】推荐使用专门为密码设计的慢哈希算法,如bcrypt、scrypt或Argon2,它们通过增加计算成本抵御暴力破解。不应使用MD5或SHA-1等快速通用哈希,因其易被高速破解。
  3. 【回答框架 3】明文存储的风险在于数据库一旦泄露,攻击者可直接获取所有用户密码,导致账号被盗、撞库攻击,且用户在其他平台复用密码时危害扩大。
  4. 【回答框架 4】安全存储还需结合其他措施:使用HTTPS传输、限制登录尝试次数、定期更换哈希算法并迁移,以及不记录明文密码日志。
  5. 【回答框架 5】实际方案中,应使用密码哈希库(如Spring Security的BCryptPasswordEncoder)并设置合理的工作因子,同时确保盐值随机且足够长。
  6. 【关键点 1】必须使用加盐的慢哈希算法(如bcrypt、scrypt、Argon2),禁止明文或快速哈希。
  7. 【关键点 2】加盐确保相同密码产生不同哈希,抵御彩虹表。
  8. 【关键点 3】明文存储一旦泄露即造成直接账号风险,且无法追溯。
  9. 【关键点 4】哈希算法需定期评估并升级,配合传输加密和防暴力破解策略。
  10. 【易错点 1】仅使用哈希不加盐,仍易受彩虹表攻击。
  11. 【易错点 2】使用MD5或SHA-1等快速哈希,可被GPU高速破解。
  12. 【易错点 3】认为哈希后即可高枕无忧,忽略传输和存储环节的其他风险。