예제 #1
0
function account_gensalt()
{
    function rannum()
    {
        mt_srand((double) microtime() * 1000000);
        $num = mt_rand(46, 122);
        return $num;
    }
    function genchr()
    {
        do {
            $num = rannum();
        } while ($num > 57 && $num < 65 || $num > 90 && $num < 97);
        $char = chr($num);
        return $char;
    }
    $a = genchr();
    $b = genchr();
    //	$salt = "$1$" . "$a$b";
    $salt = "{$a}{$b}";
    return $salt;
}
예제 #2
0
/**
 * account_gensalt() - A random salt generator
 *
 * @returns The random salt string
 *
 */
function account_gensalt()
{
    global $unix_cipher;
    // ncommander: modified for cipher selection
    // crypt() selects the cipher based on
    // the salt, so ...
    $a = genchr();
    $b = genchr();
    switch ($unix_cipher) {
        case 'DES':
            $salt = "{$a}{$b}";
            break;
        default:
        case 'MD5':
            $salt = "\$1\$" . "{$a}{$b}";
            break;
        case 'Blowfish':
            $i = 0;
            while (!($i = 16)) {
                $salt .= rand(64, 126);
                $i++;
            }
            return "\$2a\$" . $salt;
            break;
    }
    return $salt;
}