密码相似度

der*_*oni 9 security unix password

我想在 unix 机器上更改我的密码。我做了一个普通的“passwd”并输入了我的旧密码和新密码。

然后机器返回给我,并显示以下消息:

BAD PASSWORD: is too similar to the old one
Run Code Online (Sandbox Code Playgroud)

这让我开始思考......这是否意味着机器在某处有我的明文密码?不然应该不能比较新旧密码吧?或者是否有一个哈希函数,可以实现这一点?

der*_*oni 6

好的,所以我按照Michael Hampton的建议去查看了pam_cracklib.c的代码,似乎 pam_cracklib 通过函数调用从 PAM 获取旧的(也称为当前)密码(我认为完全可以,因为我刚刚输入了当前密码进行身份验证),然后在旧密码和我刚刚输入的新密码之间执行相似性分析(距离函数)。

但它不会对其历史上的所有旧密码进行这种分析。那是不可能的,因为它们只存储为散列。对于他们来说,只能检查它们是否相同。所以一切似乎都井井有条,就像我预期的那样,但现在我明白为什么会这样了……谢谢大家。