【问题标题】:Design for saving old passwords for authentication用于保存旧密码以进行身份​​验证的设计
【发布时间】:2014-07-28 18:32:51
【问题描述】:

我有一个要求,在重置密码时,新密码应该与旧密码不同。我正在考虑将其设计为具有多个密码对象的用户对象和包含用户 ID、密码和创建日期的密码对象。

重置密码时,它将检查新密码与用户的所有旧密码(最新密码除外),如果找到匹配,则将其丢弃。

如果它不在旧密码列表中,它将在用户的密码列表中创建一个新条目。当用户登录时,系统会根据 createdDate 检查最新的密码。

只是想看看您对此设计的想法,看看是否有更好的方法来做到这一点。谢谢。

【问题讨论】:

    标签: passwords data-modeling object-oriented-analysis object-model password-storage


    【解决方案1】:

    (最新密码除外)

    您为什么不根据最新密码检查它?请注意,您在实际存储新密码之前已经提到了此步骤。所以你应该检查所有旧密码。

    这听起来不错,但是您的 Password 属性应该是 salted and hashed 密码,而不是纯文本的实际密码。

    您应该选择标准(即强大且经过验证的)算法,例如 PBKDF2bcrypt

    【讨论】:

      猜你喜欢
      • 2014-06-25
      • 1970-01-01
      • 2014-02-04
      • 2020-02-28
      • 2015-07-22
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多