Как написать простой
генератор паролей на правильно составленный пароль - это максимальная длина, максимальное количество используемых символов и отсутствие каких-либо повторений. В наше время уже лучше пароль выдавать пользователю чем просить его ввести , потому как найдутся такие которые введут "123" или "qwerty" а потом будут спрашивать почему у них в аккаунте что-то случилось.
Итак, давайте разберемся, что и как будет генерироваться. Для начала нужно задать область символов (или их количество), из которых будет производиться выборка при генерации. В специализированных программах нам предлагается отметить птичкой, какие символы включить в алгоритм (цифры, все маленькие/большие английские буквы, все печатаемые символы и т.д.). Поскольку мы собрались создавать сложные пароли, то в нашей программе будет использоваться строка сразу со всеми печатаемыми символами (при необходимости вы легко доделаете нужную функциональность). Далее из нее будет случайным образом выдергиваться один символ и добавляться к паролю до нужной длины.
<?PHP# Генератор паролей на PHP# Автор: Rufus# Сайт: http://z-coder.com?><HTML> <HEAD> <TITLE>Скрипт генератора паролей на PHP</TITLE> <meta http-equiv="content-type" content="text/html;charset=Windows-1251" /> <meta name="description" content="Скрипт генератора паролей на PHP"> <meta name="keywords" content="генератор, пароли, PHP"> <meta http-equiv="expires" content="0" /> </HEAD><BODY bgcolor="#DDDDDD"><style>.TT{border-left:1px solid #000000;border-top:1px solid #000000;}.TD{border-right:1px solid #000000;border-bottom:1px solid #000000;}input{margin:1px;}</style><form action="" method="post"><table width="350" class="TT" align="center" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="TD" style="padding-left:5px;"><b>Длина пароля (мин. 5 макс. 30):</b></td> <td class="TD" align="center"><input type="text" name="len" value="5" size="5" /></td> </tr> <tr> <td class="TD" style="padding-left:5px;"><b>Спец символы:</b></td> <td class="TD" align="center"><input name="ss" type="checkbox" value="1" /></td> </tr> <tr> <td class="TD" style="padding-left:5px;"><b>Кирилица:</b></td> <td class="TD" align="center"><input name="ks" type="checkbox" value="1" /></td> </tr> <tr> <td class="TD" align="center" colspan="2"><input type="submit" value="Сгенерировать"/></td> </tr></table></form><?PHP # Смотрим, имеются ли входящие данные if(isset($_POST["len"])){ # Приводим переменную длины в целое значение $len = intval($_POST["len"]); # Проверяем велечину в переменной от недобросовестных дядек $len = ($len >= 5 AND $len <= 30) ? $len : 5; # Начальный массив символов $symbol_array = "QWERTYUIOPASDFGHJKLZXCVBNM"; # Проверяем, поставлена ли галочка на спецсимволах, # если стоит, то наращиваем массив новыми символами if(isset($_POST["ss"])) $symbol_array .= "!@#$%^&*()_+-;:?"; # Проверяем, поставлена ли галочка на кирилице, # если стоит, то наращиваем массив как и со спец символами if(isset($_POST["ks"])) $symbol_array .= "ЙЦУКЕНГШЩЗХФЫВАПРОЛДЯЧСМИТЬБЮЪ"; # Считаем длину массива, чтоб знать, до какого # максимального значения можно перебирать массив в цикле. $max = strlen($symbol_array) - 1; // Отнимаем 1 потому, что есть 0 эллемент массива # Создаём переменную, в которой будет находиться готовый пароль $pass = ""; # наращиваем переменную $pass случайными символами for($i = 0;; $i++){ # Выбираем случайный эллемент из массива символов # и заносим его в переменную $pass $pass .= $symbol_array[rand(0, $max)]; # Если достигнута необходимая длина пароля - выходим из цикла if($i == $len-1) break; } # Выводим готовый пароль echo "<center><input type='text' value='{$pass}' size='30'/></center>"; }?></BODY></HTML>
Ну вот и всё ! В архиве готовый файл .
Отзывы