Главная > Программирование > 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);
}
?>
Материал взят с сайта: Главная > Программирование > PHP |