Версия для печати. Взято с сайта phpsql.ru

На главную   Назад   Вперед

Создание случайных паролей

Случайные строки играют огромную роль в безопасности. Например, если кто-то забыл пароль и вы используете М05-хэши для хранения паролей, вы не сможете восстановить забытый пароль. Вместо этого вы можете сгенерировать случайный пароль и отправить его пользователю. Также случайные числа используются для создания ссылок активации учетных записей раз-личных сервисов сайта. Вот функция, создающая пароль:

<?php
function make_password($num_chars)   { 
if  ((is_numeric($num_chars))  && 
($num_chars > 0)  && (! is_null($num_chars)))   {
$password = “”;
$accepted_chars = “abcdefghijklmnopqrstuvwxyzl234567890”; // Seed the generator if necessary. srand(((int)((double)microtime()*1000003))  );
for  ($i=0;  $i<=$num_chars;  $i++)   {
$random_number = rand(0,   (strlen($accepted_chars)-1)); $password .= $accepted_chars[$random_number];
}
return $password;
}
}
?>
Использование сценария
Функция make_password() возвращает строку заданной длины:
<?php
$fifteen_character_password = make_password(15); 
?>
Функция работает следующим образом:
1. Сначала функция проверяет, что переменная $num_chars является целым неотрицательным числом.
2. Функция инициализирует переменную $password пустой строкой.
3. Функция инициализирует переменную $accepted_chars списком допустимых для формирования пароля символов. Мы используем буквы с нижнем регистре и цифры от 0 до 9, но вы можете выбрать любые символы, которые вам больше нравятся.
4. Генератор случайных чисел нуждается в начальном значении, поэтому нам нужно его сгенерировать (хотя это необязательно для РНР версии 4.2 или выше).
5. Функция запускает цикл, повторяющийся $num_chars раз, при каждой итерации создается один символ пароля.
6. Каждый новый символ - это символ, выбранный случайным образом из списка $accepted_chars из диапазона от 0 до length, где length - длина $accepted_chars. Каждый полученный таким образом символ добавляется к переменной $password.
7. Как только цикл завершит свою работу, функция возвращает $password.

 
Предыдущая   На главную   Следующая