Code
stock GetPasswordLevel(pass[]) /// by Romanius (работает только с английскими буквами) (v 0.4)
{
new bool:have_chars = false, bool:have_numbers = false, bool:have_upercase = false, bool:have_lowercase = false;
const LOW = 0, MEDIUM = 1, HIGH = 2; // заведем константы для вывода уровня пароля
for(new i = 0; pass[i] != 0x0; i++) // Пробежимся по всему слову
{
switch(pass[i]) // Посвитчим <img src="http://s10.ucoz.net/sm/1/biggrin.gif" border="0" align="absmiddle" alt="biggrin" />
{
case '0'..'9': have_numbers = true; // Если нашли числа то зададим значение переменной отвечающей за числа
case 'A'..'Z': have_upercase = true; // Если нашли заглавные буквы то зададим значение переменной отвечающей за заглавные буквы
case 'a'..'z': have_lowercase = true; // Если прописные буквы то зададим значение переменной отвечающей за прописные буквы
default: have_chars = true; // Остальное должно быть знаки (наверное :D)
}
}
if(have_lowercase && have_numbers && have_chars && have_upercase) return HIGH; // В пароле есть и знаки и заглавные и прописные буквы и числа тогда обозначим его константой HIGH
return ((have_lowercase ? 1 : 0) + (have_numbers ? 1 : 0) + (have_chars ? 1 : 0) + (have_upercase ? 1 : 0)) > 1 ? MEDIUM : LOW; // Тут машина уже сама выберает что подставить <img src="http://s10.ucoz.net/sm/1/wink.gif" border="0" align="absmiddle" alt="wink" />
}
Функция возвращяет
0 - низкий уровень надежности (123456789, romanius)
1 - средний уровень надежности (r0mAniUs, roman04)
2 - высокий уровень надежности (r_0mAn!u$, $Rom_@nius)