Функция генерации паролей повышенной сложности

                        
<?php
/* Функция генерации паролей повышенной сложности */
function passwdGen($minLength = 8, $maxLength = 12, $maxSymbols = 2)
{
$symbolCount = 0;
srand((double)microtime() * 1000003);
for ($i = 0; $i < mt_rand($minLength, $maxLength); $i++)
{
do
{
$char = mt_rand(33, 126);
$symbolCount += $isSymbol = (!in_array($char, range(48, 57)) && !in_array($char, range(65, 90)) && !in_array($char, range(97, 122)));
if ($symbolCount <= $maxSymbols || !$isSymbol)
{
break;
}
}
while (true);
$passwd = sprintf('%s%c', isset($passwd) ? $passwd : NULL, $char);
}
return $passwd;
}
/* пример */
echo htmlspecialchars(passwdGen()); // QzS@<GW9u>#ypEfvgDh
0 14 0
Без комментариев...