密码强度检查:与以前的密码比较

时间:2011-06-04 11:44:09

标签: cryptography passwords

每隔一段时间我就遇到一些强制您偶尔更改密码的应用程序。几乎普遍,他们对新密码有这种奇怪的要求:它必须与以前的密码“显着”不同。

虽然起初这听起来合乎逻辑,但我认为接下来的事情是:他们是如何做到的?他们用纯文本存储我的密码吗?我会接受他们所做的答案,如果不是因为这些类型的应用程序假装关心安全性如此之多,它们会强迫您在密码过期时更改密码! Microsoft Exchange就是其中的一个例子。

我不擅长加密和散列函数,所以我的问题是:是否可以在不以纯文本格式存储密码的情况下强制执行此类策略?

您知道在实际应用中如何实施此政策吗?

更新:示例。 我最近更改了我的Microsoft Exchange密码。我只使用Web Access,所以它可能会有所不同 - 我不知道。 所以,它迫使我改变我的密码。我有时做的是将其更改为新的,然后几乎立即将其更改。奇怪的是,由于这一点,它甚至不允许我改回来。我尝试通过在它前面添加一个字母或更改一个符号来尝试改变它 - 没有运气,它在抱怨。

2 个答案:

答案 0 :(得分:8)

更改密码时,通常会要求旧密码确认您的身份。然后,比较旧的和新的,看看它们有多大差异是微不足道的。 TBH我不知道如何在不存储密码的情况下与之前的几个密码进行比较,但无论如何都要进入荒谬的政策领域。

答案 1 :(得分:7)

使用典型的哈希值,您可以做的最好的事情是查看新密码是否完全等于之前的密码。您可以将密码分成多个哈希,以便通过比较获得更灵活,例如3个哈希:

  1. 仅限字母字符
  2. 仅限数字字符
  3. 所有其他角色
  4. 例如,您可以要求更改所有哈希值,以防止用户只将密码从SecretPassword01更改为SecretPassword02

    加密专家可能会在此权衡这是否可以像单个哈希一样安全。

    注意,这与单个哈希一样安全,因此在您实施此功能之前,请确保您已完成研究。