我刚刚在CentOS 5.6中创建了一个新用户并运行passwd user
,提供了密码io.6,{9001JIAIua121698aa]]
。系统上写着“坏密码:太简单了/太系统了”。没什么大不了的(反正它也接受了),但我真的很感兴趣,这怎么会过于简单/系统化呢?
发布于 2011-08-14 01:57:28
我只能看到苹果的开源实现,在这种情况下,你的密码似乎太简单了。算法可能是相似的。
代码是
#define MAXSTEP 4
i = 0;
ptr = password;
while (ptr[0] && ptr[1])
{
if ((ptr[1] == (ptr[0] + 1)) || (ptr[1] == (ptr[0] - 1)))
{
i++;
}
ptr++;
}
if (i > MAXSTEP)
{
return ("it is too simplistic/systematic");
}
基本上,它从密码中提取所有字符,并检查下一个字符是否为当前字符+/- 1(字符为一个字节)。
在您提供的密码中
io.6,{9001JIAIua121698aa]]
01
、JI
、12
、21
和98
增加i
计数器。MAXSTEP
为4,这是过于简单/系统的消息被触发。
该算法不太聪明,因为它没有考虑密码的长度和其他字符的复杂性。
https://serverfault.com/questions/300888
复制相似问题