Назад | Перейти на главную страницу

Почему «io.6, {9001JIAIua121698aa]]» слишком упрощенно / систематично?

Я только что создал нового пользователя в CentOS 5.6 и запустил passwd user, предоставляя пароль io.6,{9001JIAIua121698aa]]. Система говорит: «НЕПРАВИЛЬНЫЙ ПАРОЛЬ: он слишком упрощен / систематичен». Ничего особенного (и он все равно принимает это), но мне действительно интересно, почему это слишком упрощенно / систематично?

Я мог видеть только яблоко реализация с открытым исходным кодом, и кажется, что ваш пароль в этом случае квалифицируется как «слишком упрощенный». Алгоритмы, скорее всего, будут похожи.

Код

    #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, это слишком упрощенно / систематично сообщение запускается.

Алгоритм не очень умный, так как он не учитывает длину пароля и сложность других символов.