Компьютеры
и программирование

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

Перед Вами функция, генерирующая случайный пароль. Пароли, генерируемые ею, имеют длину, определённую в аргументе функции. Вы можете её поменять, но, вообще, сверхдлинные пароли не являются сверхнадёжными. Генерируемые пароли достаточно хорошо подстраиваются, например, под службу «забыли пароль».

Чтобы избежать получения паролей, содержащих оскорбительные слова на каком-либо из языков, использующих латинские буквы, из списка возможных символов исключены гласные буквы. А чтобы у пользователей не возникало путаницы из-за символов, которые выглядят похоже (буква О и цифра 0, буква S и число 5, буква нижнего регистра L и число 1), эти символы также исключены.

Код PHP

<?php function generatePassword ($length = 8) { // Запуск с пустым паролем $password = ""; // Определить возможные символы – в этой строке может быть любой символ из списка возможных // Символы, выбранные для использования в пароле, если вы хотите, можете включить в них и гласные // Можете добавить также специальные символы, например, восклицательный знак // Для всего перечисленного нужно поменять значение этой переменной $possible = "2346789bcdfghjkmnpqrtvwxyzBCDFGHJKLMNPQRTVWXYZ"; // Переменная $ possible используется несколько раз в контексте длины, а объявлена она здесь $maxlength = strlen($possible); // Проверка на превышение длины и обрезание, если это необходимо if ($length > $maxlength) { $length = $maxlength; } // Установка счетчика для количества символов, присутствующих в пароле $i = 0; // Добавить случайные символы в переменную пароля, пока не будет достигнута максимальная длина while ($i < $length) { // Выбрать случайный символ из возможных $char = substr($possible, mt_rand(0, $maxlength-1), 1); // Проверка, не был ли ранее использован этот символ if (!strstr($password, $char)) { // Если нет, то добавить его в конец уже полученного набора символов $password .= $char; //Увеличить счетчик на единицу $i++; } } // Готово! return $password; } ?>

Поделиться с друзьями