![“io.6,{9001JIAIua121698aa]]” 怎么会过于简单/系统化?](https://linux22.com/image/558583/%E2%80%9Cio.6%2C%7B9001JIAIua121698aa%5D%5D%E2%80%9D%20%E6%80%8E%E4%B9%88%E4%BC%9A%E8%BF%87%E4%BA%8E%E7%AE%80%E5%8D%95%2F%E7%B3%BB%E7%BB%9F%E5%8C%96%EF%BC%9F.png)
我刚刚在 CentOS 5.6 中创建了一个新用户并运行passwd user
,并提供密码io.6,{9001JIAIua121698aa]]
。系统说“密码错误:太过简单/系统化”。没什么大不了的(而且它无论如何都会接受它),但我真的很感兴趣,这怎么会太过简单/系统化呢?
答案1
我只能看到一个苹果开源实施,在这种情况下,您的密码似乎属于“过于简单”。算法可能类似。
代码如下
#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
增加计数器。为 4 21
,98
i
MAXSTEP
太过简单/系统化消息被触发。
该算法不太智能,因为它没有考虑密码的长度和其他字符的复杂性。