密码相似

我想在unix机器上更改我的密码。 我做了一个正常的“passwd”,input我的旧密码和我的新密码。

然后机器回来,给我以下消息:

BAD PASSWORD: is too similar to the old one 

这让我想到了…这是否意味着,机器的密码在明文中的某处? 否则,它不应该能够比较旧的和新的密码,对不对? 还是有一个哈希函数,使?

OK,所以我按照Michael Hampton的build议去看看pam_cracklib.c的代码,好像pam_cracklib通过函数调用从PAM中获得旧的(aka当前)密码(我认为完全可以,因为我刚刚input了当前的密码进行validation),然后执行旧密码和刚刚input的新密码之间的相似性分析(距离函数)。

但它并没有对历史上的所有旧密码进行分析。 这是不可能的,因为他们只存储为散列。 对于他们来说,只有他们是相同的,才能进行检查。 所以,一切似乎都是按照我的预期,但现在我明白为什么…谢谢大家。

您的旧密码不以纯文本格式存储。

相反,您的旧密码散列保存在PAM的/etc/security/opasswd 。 然后根据PAMconfiguration中指定的内容,在更改密码时进行比较。

一个示例PAMconfiguration:

 password required pam_unix.so sha512 remember=12 use_authtok 

在这里, remember它会记住12个以前的密码。

有关更多详细信息,请参阅Linux Password Security与pam_cracklib 。

有些系统可以存储/计算熵(密码复杂度)并比较它们,我不知道是否是PAM的情况。