Я только что создал нового пользователя в 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, это слишком упрощенно / систематично сообщение запускается.
Алгоритм не очень умный, так как он не учитывает длину пароля и сложность других символов.