Генератор паролей

Данную функцию можно встретить на многих сайтах при регистрации. Этот урок покажет вам, как сделать скрипт, который будет генерировать случайный пароль заданной длины.

function randomPassword($length, $allow = "abcdefghijklmnopqrstuvwxyz0123456789") {

Мы назовем нашу функцию randomPassword. Вы можете назвать её как угодно, только не забудьте изменить название функции в продолжении кода. Функция имеет 2 параметра: $length и $allow. $length — длина генерируемого пароля, $allow — необязательный параметр, он устанавливает то, из каких символов генерировать пароль. По умолчанию мы используем строчные буквы английского алфавита и цифры.

$i = 1;
while ($i <= $length) {

Следующим шагом будет создание цикла, который будет повторяться столько раз, сколько было задано количество символов в генерируемом пароле. Таким образом, в этом цикле мы генерируем 1 случайный символ и добавляем его к окончательному паролю.

$max  = strlen($allow)-1;
$num  = rand(0, $max);

В приведенном выше коде генерируется номер между 0 и числом знаков, указанном в параметре $allow, минус один. Т.е. из 20 знаков выбирается любой от 0 до 19, потому что функция substr (), используемая в следующем коде, указывает, что первый знак — 0, а не 1.

$temp = substr($allow, $num, 1);
$ret  = $ret . $temp;

Случайный символ выбираем из параметра $allow, используя функцию substr (). Этот символ добавляется в переменную $ret, в которой и будет окончательный пароль.

$i++;
}
return $ret;
}

Этот код закрывает цикл и возвращает сгенерированный пароль. Наша функция готова. Нам остается только запустить функцию в коде, а делается это так:

$password = randomPassword(10);

Этот пример будет генерировать пароль из 10 символов.

$password = randomPassword(10, '0123456789');

А здесь пароль будет генерироваться только из 10 цифр.

Надеюсь, этот урок помог вам. В завершение приведу полностью полученную функцию:

function randomPassword($length, $allow = "abcdefghijklmnopqrstuvwxyz0123456789") {
$i = 1;
while ($i <= $length) {
$max  = strlen($allow)-1;
$num  = rand(0, $max);
$temp = substr($allow, $num, 1);
$ret  = $ret . $temp;
$i++;
}
return $ret;
}

Stefan Ashwell
Перевод: http://www.4webmaster.ru/

Рекомендуем почитать:
Проверка e-mail
Прячем счетчик
Особенности ссылок «вверх страницы»


2 комментариев

  1. Лёва 23.05.2009

    Немного непонятно. Как тогда вобще сделать так, что-бы на сайте регестрироваться? Да и зачем???

  2. admin 23.05.2009

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

Оставить комментарий: