相似的密码是否有相似的哈希值? 不。 任何相似性,甚至是复杂的相关性,都将被视为散列中的一个弱点。一旦被加密社区发现,它将被发布,并且在散列中发现的足够多的弱点最终加起来建议不要再使用该散列。 当然,没有办法知道哈希是否有未被发现的弱点,或者攻击者已知但未公布的弱点,在这种情况下,攻击者很可能是一个资金充足的政府组织。美国国家安全局当然拥有对某些加密组件的非公开理论攻击,但这些攻击是否可用是另一回事。GCHQ 可能是。我猜其他几个国家有秘密的加密程序,有足够多的数学家完成原创工作:我的第一个猜测是中国。您所能做的就是根据可用的最佳信息采取行动。如果最好的可用信息表明哈希“对加密有好处”,那么其中一件事就是没有这种可用的相似性。 最后,一些系统使用弱散列作为密码——要么是由于实施者的无知,要么是由于遗留问题。哈希方案的属性要么没有经过公开审查,要么已经过审查并发现有缺陷,要么已经足够老以至于最终发现了重大弱点。MD5 出于某些目的而被破坏(因为存在产生冲突的实际方法),但并非出于所有目的。AFAIK 这没关系,从某种意义上说,没有实际的图像前攻击,并且拥有少量相关明文的散列并不比拥有少量不相关明文的散列好。但是由于不相关的原因,无论如何您都不应该真正使用任何哈希的单个应用程序来存储密码,您应该使用多轮。 如果黑客拥有类似密码的哈希列表,他们是否会增加暴力破解密码的机会? 间接地,是的,知道这些是您的旧密码。不是因为散列的任何属性,而是假设攻击者设法(非常缓慢地)使用这些旧散列暴力破解您的一个或多个旧密码,并看到过去是“thisismypassword3”和“thisismypassword4” . 您的密码已更改为“thisismypassword5”。干得好,通过在攻击者破解之前更改它,您已经成功确保攻击者没有找回有价值的密码!胜利!除非它对你没有好处,因为攻击者有办法使用旧密码快速猜出新密码。 即使攻击者只有一个旧密码,因此无法轻易发现趋势,密码破解者也会通过尝试类似于字典单词和其他值的密码来工作。为了简化一点,它会首先尝试字典单词,然后是由一个单词组成的字符串,其中添加、删除或更改了一个额外的字符,然后是具有两个更改的字符串,依此类推。 通过在“其他值”中包含您的旧密码,攻击者可以确保在破解过程的早期检查与其非常相似的字符串。因此,如果您的新密码与旧密码相似,那么拥有旧哈希值对攻击者来说确实有一些价值 - 反转其中任何一个都会给他一个很好的种子来破解您当前的密码。 因此,定期增加密码并不会增加太多。将您的密码更改为可以从旧密码中猜到的密码会使您的攻击者处于与他们一无所知的情况相同的位置,但您的密码完全可以猜到。 如今,对密码系统的主要实际攻击是窃听(通过键盘记录器和其他恶意软件)和网络钓鱼。尝试反转密码哈希并不是一个好的百分比攻击,尽管如果攻击者以某种方式获得了 /etc/passwd 文件或等效文件,他们将在普通系统上以这种方式破解一些弱密码。