Forum Webscript.Ru

Программирование => Perl => Тема начата: Elenka от 07 Ноября 2005, 16:21:02

Название: Функция генерации пароля...
Отправлено: Elenka от 07 Ноября 2005, 16:21:02
где то была, не помню...понадобилась вот, генерировать последовательность случайных символов(паролей)

не подскажите ?:)

спасибо
Название: Функция генерации пароля...
Отправлено: NeoNox от 07 Ноября 2005, 16:50:32
Есть на CPAN модули.
Я когда-то использовал приблизительно вот такую функцию.

random_password(7);
sub random_password {
        my($length, $vowels, $consonants, $alt, $s, $newchar, $i);
        ($length) = @_;
        if ($length eq "" or $length < 3) {
            $length = 6;            # make it at least 6 chars long.
        }
        $vowels = "AEUYaeiouy";
        $consonants = "bdghDGHJLMNPQRSTVWXZ12345678jmnpqrstvwxzBDGHJLMNPQRSTVWXZ12345678";
        srand(time() ^ ($$ + ($$ << 15)) );
        $alt = int(rand(2)) - 1;
        $s = "";
        $newchar = "";
        foreach $i (0..$length-1) {
            if ($alt == 1) {
               $newchar = substr($vowels,rand(length($vowels)),1);
            } else {
               $newchar = substr($consonants, rand(length($consonants)),1);
            }
            $s .= $newchar;
            $alt = !$alt;
        }
        return chomp($s);
}