Генерация пароля на PHP, три уровня сложности.

Author Автор: Роман Чернышов    Опубликовано: 28 января 2011

Работая над очередным проектом, разрабатываемым с нуля, пришла необходимость автоматически генерировать пароли для пользователей при регистрации. Более того, для данного проекта предусматривался платный доступ к определенным разделам. Для защиты которых был выбран так же банальный способ — все под пароль. Разумеется и для реализации этого, требовалось генерировать пароли, но уже более сложные.

Разумеется далеко для поиска функции генерации паролей ходить ненужно, гугл к счастью работает исправно. Но вот именно такой функции, которая могла бы генерировать пароли разной степени сложности в зависимости от наших пожеланий я не нашел. Поэтому доработал то, что было и этим хочу поделиться с вами. А заодно добавить в свой блог полезную для меня заметку))

Собственно сам код на PHP:

function genpass($number, $param = 1)
{
$arr = 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','.',',',
'(',')','[',']','!','?',
'&','^','%','@','*','$',
'<','>','/','|','+','-',
'{','}','`','~');
// Генерируем пароль
$pass = "";
for($i = 0; $i < $number; $i++)
{
if ($param>count($arr)-1)$param=count($arr) - 1;
if ($param==1) $param=48;
if ($param==2) $param=58;
if ($param==3) $param=count($arr) - 1;
// Вычисляем случайный индекс массива
$index = rand(0, $param);
$pass .= $arr[$index];
}
return $pass;
}
 
genpass(10, 1); // генерирует пароль из 10 символов содержащий буквы в верхнем и нижнем регистре
 
genpass(10, 2); // генерирует пароль из 10 символов содержащий буквы в верхнем и нижнем регистре, а также цифры от 0 до 9
 
genpass(10, 3); // генерирует пароль из 10 символов содержащий буквы в верхнем и нижнем регистре, цифры от 0 до 9 и все спец. символы. Пароль получится реально сложным))

И так первое значение это длина пароля, второе уровень сложности. Разобраться во всем довольно таки просто. Кстати я даже на одном из своих сайтов заменил стандартный скрипт генерации паролей на эту небольшую функцию.

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

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 159₽
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка