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

Вторник, 17 августа 2010 г.
Рубрика: PHP программирование -> Готовые решения
Просмотров: 1327
Подписаться на комментарии по RSS

Посмотреть демо

Сегодня мы создадим генератор паролей на php.

У нас будет генератор паролей состоящий из одного файла - generator.php.

Но по идее у нас должно быть два файла - файл с формой и обработчик, но мы упростим это в один файл.

Для начала создадим файл, в котором будет только форма:

<form action="generate.php" method="post">
<input type="text" name="text" value="<?=$password?>"/><br /><br />
<input type="hidden" name="pass"/>
<input type="submit" name="submit" value="сгенерировать"/>
</form>

У нас будет форма, где обработчик наш файл с формой, метод передачи post/

В форме есть поле под пароль, кнопка, и скрытый параметр - это нам понадобиться для генерации пароля в одном файле с формой.

Теперь в файл с формой добавим php код, с массивом из цифр и английских букв - он нам нужен для генерации пароля:

<?php
if(isset($_POST["pass"])){
$data=array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
}
?>
<form action="generate.php" method="post">
<input type="text" name="text" value="<?=$password?>"/><br /><br />
<input type="hidden" name="pass"/>
<input type="submit" name="submit" value="сгенерировать"/>
</form>

Теперь нам понадобится генерация случайной длины пароля, для этого будем использовать функцию rand:

<?php
if(isset($_POST["pass"])){
$data=array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$length_pass=rand(7,11);
}
?>
<form action="generate.php" method="post">
<input type="text" name="text" value="<?=$password?>"/><br /><br />
<input type="hidden" name="pass"/>
<input type="submit" name="submit" value="сгенерировать"/>
</form>

Теперь добавим цикл, в котором будем выбирать случайный символ из массива, и цикл будет длиться до длины пароля(от 7 до 11):

<?php
if(isset($_POST["pass"])){
$data=array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$length_pass=rand(7,11);
for($i=0;$i<=$length_pass;$i++){
    $rand_sim=rand(0,(count($data)-1));
    $password.=$data[$rand_sim];
}
}
?>
<form action="generate.php" method="post">
<input type="text" name="text" value="<?=$password?>"/><br /><br />
<input type="hidden" name="pass"/>
<input type="submit" name="submit" value="сгенерировать"/>
</form>

И наконец пропишем в условие else, если на кнопку не нажимали:

<?php
if(isset($_POST["pass"])){
$data=array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$length_pass=rand(7,11);
for($i=0;$i<=$length_pass;$i++){
    $rand_sim=rand(0,(count($data)-1));
    $password.=$data[$rand_sim];
}
}else{
    $password='';
}
?>
<form action="generate.php" method="post">
<input type="text" name="text" value="<?=$password?>"/><br /><br />
<input type="hidden" name="pass"/>
<input type="submit" name="submit" value="сгенерировать"/>
</form>
Поделиться...
twitter.com facebook.com vkontakte.ru mail.ru google.com bobrdobr.ru
Комментариев: 2
  1. для чего нужен генератор паролей? на сколько нужно его сделать прочным чтоб обезопасить логин от взлома?

  2. для чего нужен генератор паролей? на сколько нужно его сделать прочным чтоб обезопасить логин от взлома?

    Генератор паролей нужен, скажем, в регистрации или когда пользователь хочет сменить пароль - чтобы его не утруждать в этом, мы придумали такой вот простой скрипт.

    Насчёт безопасности - я думаю не один хакер не сможет подобрать пароль из 11 символов, причём они будут с цифрами - можно ещё больше усложнить генератор - добавить в него и большие буквы - если в пароле будут заглавные и мелкие буквы + цифры - то это сделает подбор пароля практически невозможным!

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

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

Если вы уже зарегистрированы как комментатор, укажите пароль и свой действующий email.

(обязательно)