“io.6,{9001JIAIua121698aa]]”如何过于简单化/系统化?

3 password

我刚刚在 CentOS 5.6 中创建了一个新用户并运行passwd user,提供密码io.6,{9001JIAIua121698aa]]。系统提示“密码错误:太简单化/系统化”。没什么大不了的(无论如何它确实接受它),但我真的很感兴趣,这怎么太简单化/系统化了?

Bre*_*bad 9

我只能看到 Apple开源实现,在这种情况下,您的密码似乎“太简单了”。算法很可能是相似的。

代码是

    #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");
    }
Run Code Online (Sandbox Code Playgroud)

基本上它从密码中获取所有字符,并检查下一个字符是否是当前字符 +/- 1(字符为一个字节)。

在您提供的密码中

  io.6,{9001JIAIua121698aa]]
Run Code Online (Sandbox Code Playgroud)

01, JI, 12,2198增加i计数器。MAXSTEP为 4,触发过于简单/系统的消息。

该算法不是很聪明,因为它没有考虑密码的长度和其他字符的复杂性。