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)