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

Как часто вам приходится менять пароль от своего аккаунта? Смею предположить что многие стараются менять пароль как можно чаще, например раз в три месяца.

При создании нового пароля перед многими встает проблема в том, как придумать стойкий пароль и сколько символов в пароле должно быть. Некоторые вообще не заботятся о стойкости своего пароля и в качестве пароля выбирают дату своего рождения. Те, кому уже приходилось терять доступ к своему аккаунту - уже задумались о длине и стойкости пароля и придумали сложный пароль.

Однако, при создании нового пароля, многие находятся в поиске специализированных программных средств для создания пароля. Давайте рассмотрим пример генерации пароля на PHP:

<?php

//Задаем длину пароля

$length = 8;

//Массив символов, из которых будет генерироваться пароль

$arr = array('q', 'w', 'e', 'r', 't', 'y',

'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h',

'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm',

'Q', 'W', 'E', 'R', 'T', 'Y','U', 'I', 'O', 'P',

'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',

'Z', 'X', 'C', 'V', 'B', 'N', 'M',

'0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

//Инициализация переменой, которая будет содержать пароль

$password = '';

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

for ($i = 0; $i < $length; $i++)

{

$index = rand(0, count($arr) - 1);

$password .= $arr[$index];

}

//Выводим полученный пароль в браузер

echo $password;

?>

Код довольно прост: переменная length задает длину пароля, которая равна 8 символам. Далее нужно создать массив символов, из которых будет складываться пароль. Пароль сохраняется в переменной password, но прежде всего эту переменную необходимо инициализировать, что мы и делаем задав переменной пустое значение.

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

В теле цикла происходит следующее: в переменную index попадает номер элемента в массиве, который выбирается случайным образом. Затем в переменную password попадает сам символ массива.

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

Таким образом происходит генерация пароля случайным образом, который будет устойчив к перебору. Разумеется, если задать пароль в два символа, то такой пароль не будет считаться стойким, а вот если он будет содержать 8-10 символов, то взломщик быстрее состарится, прежде чем сможет подобрать пароль.

2011-10-23 14:41

Понравился сайт? Расскажи о нем друзьям:

Comments to Notes: 1

Almaz

$newsPass='';

$characters="1234567890abcdefghijklnopqrstuvwxyzABCDEFGHIJKLNOPQRSTUVWXYZ";


for($i=0;$i<=7;$i++)

$newsPass.=substr($characters,rand(0,strlen($characters)),1);

2013-02-04 04:37:58

Чтобы оставить комментарий, пожалуйста, заполните все поля.

Комментарий:


Имя:
BBCode: [b]  [i]  [s]  [quote]  [Quote selected]
Ваш комментарий:
Защитный код: CAPTCHA