【问题标题】:Identifying password similarity without storing in plain text?识别密码相似性而不以纯文本形式存储?
【发布时间】:2014-12-08 20:17:15
【问题描述】:

我的一个 SaaS 软件供应商要求我每 90 天更改一次密码,这很好。

但令我惊讶的是,密码更改屏幕出现错误,并带有我的 new password is too similar to an old password. 的注释

如果我在密码中更改的字符少于三个或四个,通常会发生这种情况。

如果它与旧密码完全匹配,我相信他们正在对我的密码进行哈希处理并比较哈希值。 “相似度”匹配让我觉得他们是在存储和比较明文版本。

是否可以通过比较一个哈希值与另一个哈希值来确定“相似性”,还是该供应商更有可能以纯文本形式存储我的密码?

【问题讨论】:

    标签: hash passwords plaintext


    【解决方案1】:

    这是可能的。每当您更改密码时,该软件可以为相同密码的所有组合创建哈希码,其中一些字符被屏蔽或删除。

    如果你的密码是hello,它可以为_elloh_llohe_lohel_ohell___llo_e_lo_ell_、@创建哈希码987654330@、he__o...等

    下次您更改密码时,它可以创建该密码的同一组组合,并与之前的所有哈希码进行比较。如果匹配,则仅更改了几个字符。

    当然,以纯文本形式保存密码要简单得多。

    【讨论】:

      【解决方案2】:

      他们很可能存储的是纯文本。使用好的散列算法,原始内容和散列值之间应该没有相关性(这就是它的优点)。

      他们可能正在存储原始密码的某些特征以用作参考。例如字符数、任何数值等,然后与之比较,但我对此表示怀疑。

      【讨论】:

        【解决方案3】:

        这取决于他们是检查所有个旧密码,还是只检查您的最后一个密码。

        如果您必须输入旧密码才能设置新密码,则最后一个密码将在内存中可用。表单通常要求输入三个输入:旧密码、新密码和确认新密码。

        如果他们以散列形式存储您最近的几个密码,他们将能够检查这些密码是否完全匹配,并且他们可以使用您刚刚重新输入的旧密码的算法检查您以前的密码是否相似。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-18
          • 2020-03-16
          • 2016-07-26
          • 1970-01-01
          • 2010-10-31
          • 2017-01-27
          • 2015-12-20
          • 1970-01-01
          相关资源
          最近更新 更多