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

В этом уроке мы научимся создавать скрипт генератор паролей заданной длины. Этот скрипт можно использовать в различных случаях. Например, для генерации пароля при регистрации на сайте, при восстановлении пароля.

Давайте начнем. Для начала создадим функцию и назовем ее randomPassword. Функция имеет два параметра – $length и $allow. В параметр $length вноситься значения дли пароля, которое будет генерироваться. Параметр $allow является необязательным. Он показывает, какие символы будут сгенерированы. Для примера возьмем все строчные буквы и цифры от 0-9.

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

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


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

Теперь сгенерируем случайное число между 0 и количеством символов в параметре $allow и отнимем 1. Итак, если есть более 20 символов, случайное число генерируется между 0 и 19 – это потому, что в коде используется функция strlen() которая является ссылкой первый символ строки в качестве 0 вместо 1.


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

Далее случайны случайным образом из параметра $allow выбирается значение. Затем это значение добавляется в переменную $ret, которая и будет нашим случайным паролем.


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

После окончания цикла возвращается сгенерированный пароль. Наша функция завершена


 $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;
 
 }
 

Понравился урок? Добавьте его к себе в закладки.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *