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

Добавлен: 

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

Сегодня, я вам расскажу, как создать генератор паролей средствами PHP. Предлагаемый генератор может генерировать любое количество паролей любой длины, из предложенного варианта символов. По умолчанию, длина и количество паролей ограничены, но можно внести небольшое изменение в код, и задать нужный параметр, или убрать ограничение вовсе.

Собственно, сам код, который выводит форму с настройками и кнопкой для генерации паролей:

<?php
$hidden = $_POST['hidden'];
$form_a_z = $_POST['form_a_z'];
$form_ab_zb = $_POST['form_ab_zb'];
$form_zerro_one = $_POST['form_zerro_one'];
$form_amount_symbols_pass = $_POST['form_amount_symbols_pass'];
$form_amount_pass = $_POST['form_amount_pass'];

//делаем ограничение
if($form_amount_symbols_pass > "64") $form_amount_symbols_pass = "64";
if($form_amount_pass > "128") $form_amount_pass = "128";

//если форма отправлялась - генерируем пароли
if($hidden != ""){
print('<div style="width:600px; padding:10px;"><font style="text-indent:7px; text-decoration:none; font-size:15px; font-weight:bold; color:#0094db;">Результат<br><br></font>');
//выбраны ли символы для генерации
if($form_a_z == 'y' || $form_ab_zb == 'y' || $form_zerro_one == 'y'){
if($form_a_z == 'y') $az = range("a","z");
else $az = array();
if($form_ab_zb == 'y') $az_big = range("A","Z");
else $az_big = array();
if($form_zerro_one == 'y') $zerro_one = range(0,9);
else $zerro_one = array();
//массив нужных символов
$need_symbols = array_merge($az,$az_big,$zerro_one);
$count_symbols = count($need_symbols);

//цыкл для создания паролей
for($i = '0'; $i < $form_amount_pass; $i++){
//вложенный цыкл для генерирования пароля
for($a = '0'; $a < $form_amount_symbols_pass; $a++){
$max_gen = $count_symbols - 1;
$gen_sym = mt_rand(0, $max_gen);
$symbol = $need_symbols[$gen_sym];
$password = "$password$symbol";
}
print("$password<br>");
unset($password);
}
}
else print('Не выбраны символы для генерации');
print('</div>');
}

//выводим форму
print("
<table>
<form name=\"forma\" action=\"index.php\" method=\"post\">
<input type=\"hidden\" name=\"hidden\" value=\"y\" />

<tr><td>Использовать символы a-z - </td><td valign=\"bottom\"><input type=\"checkbox\" name=\"form_a_z\" value=\"y\" checked/></td></tr>
<tr><td>Использовать символы A-Z - </td><td valign=\"bottom\"><input type=\"checkbox\" name=\"form_ab_zb\" value=\"y\" checked/></td></tr>
<tr><td>Использовать символы 0-9 - </td><td valign=\"bottom\"><input type=\"checkbox\" name=\"form_zerro_one\" value=\"y\" checked/></td></tr>
<br>
<tr><td>Количество символов в паролях (до 64) - </td><td valign=\"bottom\"><input type=\"text\" style=\"width:30px;\" name=\"form_amount_symbols_pass\" size=\"5\" maxlenght=\"5\" value=\"16\"/></td></tr>
<tr><td>Количество паролей (до 128) - </td><td valign=\"bottom\"><input type=\"text\" style=\"width:30px;\" name=\"form_amount_pass\" size=\"5\" maxlenght=\"5\" value=\"1\"/></td></tr>

<tr><td><br><br><input type=\"submit\" value=\"Генерировать\" />
</form>
</table>
");
?>

Данный генератор паролей в действии

Ну, а если вам не нужен готовый инструмент, а нужен только сам генератор, который генерирует пароль/пароли по ходу выполнения какого-то вашего сценария, то вот упрощённая версия:

<?php
//количество символов в пароле
$form_amount_symbols_pass = '64';
//количество паролей
$form_amount_pass = '128';

//генерируем пароли
$az = range("a","z");
$az_big = range("A","Z");
$zerro_one = range(0,9);
//массив нужных символов
$need_symbols = array_merge($az,$az_big,$zerro_one);
$count_symbols = count($need_symbols);

//цыкл для создания паролей
for($i = '0'; $i < $form_amount_pass; $i++){
//вложенный цыкл для генерирования пароля
for($a = '0'; $a < $form_amount_symbols_pass; $a++){
$max_gen = $count_symbols - 1;
$gen_sym = mt_rand(0, $max_gen);
$symbol = $need_symbols[$gen_sym];
$password = "$password$symbol";
}
print("$password<br>");
unset($password);
}
?>

Не забываем оставлять комментарии и отзывы, нам важно ваше мнение!

А еcли статья Вам очень понравилась и Вы считаете, что она достойна внимания. Тогда просто поделитесь ею, в социальной сети:


Интересная рекламма:


Возможно вам будет интересно
Работа через PROXY сервера на PHP с помощью библиотеки CURL Распиновка USB 2.0 и 3.0 (распиновка кабеля, гнезда и разъёма на материнской плате) Регистрация домена на свой IP адрес

Комментарий добавил: Гость - Vadim
Добавлен: 11 07 2013 10:19:44
Гость - Vadim
Спасибо Вам большое за этот генератор.

Комментарий добавил: Гость - Павел
Добавлен: 07 03 2014 14:00:03
Гость - Павел
Спасибо огромное классный генератор!!!
У меня вопрос а как сделать чтоб эти пароли вставлялись автоматом в таблицу баззы данных "Пользователи" в колонну "Пароль"? Очень надо для моего проекта
Заранее спасибо
Ваш читатель PS(если можно то ответьте мне на почту: lavanda01@mail.ru)

Комментарий добавил: Гость - Александр
Добавлен: 24 06 2014 14:57:16
Гость - Александр
Спасибо.
Очень красивый код. все работает и очень хорошо.
Первый мой комментарий с благодарностью не появился, пишу второй.
Если комментарии проходят модерацию, то надеюсь первый одобрят, там есть некоторые советы, а этот можно удалить.
Очень хорошо, что есть выбор (цифры, большие буквы, маленькие буквы, количество паролей.)

Еще раз Спасибо!.

С Уважением Александр.

Комментарий добавил: Гость - alex
Добавлен: 22 01 2015 15:24:06
Гость - alex
мой генератор попроще
<?php
echo \'<form method="post">\';
echo \'<p>Введите количество символов</p>\';
echo \'<input type="text" name="simb"><br>\';
echo \'<p>Введите количество паролей</p>\';
echo \'<input type="text" name="pass"><br>\';
echo \'<input type="submit" value="генерация">\';
echo \'<br>\';
$q=$_POST[\'simb\'];
$a=$_POST[\'pass\'];
$input=array(\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',
\'g\',\'h\',\'i\',\'j\',\'k\',\'l\',
\'m\',\'n\',\'o\',\'p\',\'r\',\'s\',
\'t\',\'u\',\'v\',\'x\',\'y\',\'z\',
\'A\',\'B\',\'C\',\'D\',\'E\',\'F\',
\'G\',\'H\',\'I\',\'J\',\'K\',\'L\',
\'M\',\'N\',\'O\',\'P\',\'R\',\'S\',
\'T\',\'U\',\'V\',\'X\',\'Y\',\'Z\',
\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',
\'7\',\'8\',\'9\',\'0\');

for ($j=1;$j<=$a;$j++){
echo \'<br>\';
for ($i=1;$i<=$q;$i++){
shuffle($input);
echo $input[$i];

}
}
?>

Комментарий добавил: Гость - Django
Добавлен: 17 02 2015 22:03:55
Гость - Django
В сети много действующих генераторов, вот например http://castlots.ru/generator-parolej-online/

Добавление комментария

Имя -

E-mail -





Читать в Яндекс.Ленте

Яндекс.Метрика


Power by xDroid. Copyright © 2009 - 2017 VEB.name
Копирование информации только с обратной ссылкой
Время генерации страницы : 0.0151 сек.