PHP SQL
PHP SQL .ru
  Главная  Уроки  PHP  MySQL  jQuery  RegEx  CSS  Книги  Форум  
 Функции


  На главную

  Назад  Вперед

  Печать

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

Случайные строки играют огромную роль в безопасности. Например, если кто-то забыл пароль и вы используете М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.

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

Гость   02.01.2012 в 20:10
В скрипте есть ошибочка:
цикл надо писать: for ($i= 0; $i < $num_chars; $i++) ,
иначе в пароле получается на один знак больше.
И кавычки надо поправить.
А как, вообще, сделать пароль знаков, эдак, в десять, пользуясь только встроенными функциями PHP?
Любитель.

Ваш комментарий:

'

Реклама на сайте | Обмен ссылками | Ссылки | Контакты
Добавить статью | Добавить исходник
2010-2014 © phpsql.ru