Генерация пароля

Опубликовано 30-11-2008 в рубрике PHP

Метки:

0

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

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

Эта функция имеет два параметра – длину и допустимые символы. Параметру $length будет передаваться длина пароля, а параметр $allow не обязательный, он содержит набор допустимых символов.

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

Теперь создадим цикл, в котором будет генерироваться пароль.

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

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

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

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

  1. $i++;
  2. }
  3. return $ret;
  4. }

Рассмотрим как же эту функцию использовать

  1. $password = randomPassword(10);

Приведенный выше код сгенерирует случайный пароль длины 10 символов. Вот еще один пример:

  1. $password = randomPassword(10, ‘0123456789′);

Этот код сгенерирует пароль из 10 цифр.
Полный код функции randomPassword:

  1. function randomPassword($length, $allow = "abcdefghijklmnopqrstuvwxyz0123456789") {
  2. $i = 1;
  3. while ($i <= $length) {
  4. $max = strlen($allow)-1;
  5. $num = rand(0, $max);
  6. $temp = substr($allow, $num, 1);
  7. $ret = $ret . $temp;
  8. $i++;
  9. }
  10. return $ret;
  11. }

Ваш комментарий для этой записи будет первый.

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