Last Updated: February 25, 2016
·
249
· wisnu

password generator using symbols

<?php
function passwdGen($minLength = 8, $maxLength = 12, $maxSymbols = 2)
{
    $symbolCount = 0;
    srand((double)microtime() * 1000003);
    for ($i = 0; $i < rand($minLength, $maxLength); $i++)
    {
        do
        {
            $char = 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;
}