Справочники, инструменты, документация

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

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

Генерация пароля по алгоритму MD5

$id = md5(uniqid(rand(),true));
print $id."<br>";

Однако полученный пароль содержит лишь буквы английского языка в нижнем регистре и цифры. Для генерации более стойкого к подбору паролей можно воспользоваться скриптом приведённым ниже.

Генерация равномерного пароля

<form method="post">
<input type="text" name="number" value="10">
<input type="submit" value="Генерировать">
<form>

<?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;
 }
?>