Answers:
实现此目的的一种方法是,如果您重置密码,通常还会要求您输入旧密码。在那种情况下,您只需要简单地使用常规字符串相似性比较,因为此时两个密码都以明文形式存在。
实现此目的的另一种方法是对密码进行标准化,例如将重音字符标准化为最接近的英语字母,尝试以语音方式转录文本,删除数字等,并通过预先计算从密码生成的多个版本的哈希来验证密码。已经以不同的方式标准化。请注意,这会削弱哈希机制的不确定数量。我不会将其视为安全性最佳实践。
简单的答案是,安全系统不知道它们是否相似。
但是某些系统会以某种方式故意降低特定密码的安全性,以防止新密码成为旧密码或与之相似的密码。权衡成本的好处是,在有人恶意破解当前密码(即使具有相似性信息)之前,将创建一个新密码。
通常,所有这些技术都会降低密码的安全性。
保留旧密码会降低这些密码的安全性。如果其中任何一个密码被破解,则当前密码很有可能与它们相似,大多数人只更改一个数字。
缩略图和统计信息比尝试散列猜测并进行比较可以更快地消除错误的密码猜测。这是因为即使硬件加速,哈希(尤其是安全哈希)的计算和花费也很复杂。虽然说“绝对不是”或“也许”的简单计算可以消除大多数猜测,但毕竟相似性检查是为了阻止您使用相似的密码,而不是使用看上去与旧密码完全不同的全新密码。
简而言之,请注意任何表明与您当前/旧密码相似的度量的站点。除非他们说新密码是旧密码。
如果密码是散列存储的,那么如果您尝试重置密码,计算机将如何知道您的密码与上一个密码相似?由于一个密码是散列的,并且无法逆转,因此这两个密码不会完全不同吗?
您从用户输入的密码中生成了多个相似的密码,并检查其哈希值是否与旧密码之一匹配。
另一个模式是系统对您的密码的某些特征子集进行哈希处理,并存储这些哈希值以检查新密码的子集是否与旧密码中的任何旧匹配,即:password:“ Admin2018”&subset:“ Admin” =无法输入“ Admin2019”作为新的一个。