08.12.2022

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

Пароль генерируется случайным образом при помощи функции uniqid. Эта функция возвращает уникальный идентификатор, основываясь на значениях текущего времени в микросекундах.

При таком варианте использования функции возвращается 128-битный хеш-код

Генерация пароля по аглоритму MD5
<?php
$id = md5(uniqid(rand(),true));
print $id.»<br>»;
?>
Однако полученный пароль содержит лишь буквы английского языка в нижнем регистре и цифры. Для генерации более стойкого к подбору паролей можно воспользоваться скриптом приведённым ниже.

Генерация «равномерного» пароля
<form method=»post»>
<input type=»text» name=»number» value=»10″>
<input type=»submit» value=»Генерировать»>
<form><br><br>
<?php
// Параметр $number — сообщает число
// символов в пароле
echo generate_password(intval($_POST[‘number’]));

function generate_password($number)
{
$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++)
{
// Вычисляем случайный индекс массива
$index = rand(0, count($arr) — 1);
$pass .= $arr[$index];
}
return $pass;
}
?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *