Forum Webscript.Ru
Программирование => Perl => Тема начата: от 14 Февраля 2002, 11:08:15
-
Люди добрые, плиз, напишите или скиньте юрл добротной генерилки паролей. Я бы и сам придумал, но фантазия ваще перестала работать, да и времени на ее включение нету ;)
-
Есть такая функция crypt(). Детальнее о ней можно узнать perldoc -f crypt.
Теперь сам пример скрипта:
===================================
#!/usr/bin/perl
$pass = "пароль";
$salt = join \'\', (\'.\', \'/\', 0..9, \'A\'..\'Z\', \'a\'..\'z\')[rand 64, rand 64];
$cryptpass = crypt($pass,$salt);
print "Content-type: text/html\\n\\n";
print $cryptpass;
====================================
Замените значение переменной $pass на необходимый пароль и запустите скрипт.
Удачи!
-
2 Neonox:
ИМХО просили генератор, а не шифрователь паролей.
Правда при необходимости за него может сойти и строка:
$salt = join \'\', (\'.\', \'/\', 0..9, \'A\'..\'Z\', \'a\'..\'z\')[rand 64, rand 64];
при увеличении размерности массива.
P.S.:
Замечание к стилю программирования:
Если скриптом выдаются текстовые данные не логичнее ли использовать
print "Content-type: text/plain\\n\\n"; HTML-ем то и не пахнет.:)
-
ИМХО просили генератор, а не шифрователь паролей.
(смущенно) точно... наверное не проснулся еще :)
Правда при необходимости за него может сойти и строка:
$salt = join \'\', (\'.\', \'/\', 0..9, \'A\'..\'Z\', \'a\'..\'z\')[rand 64, rand 64];
при увеличении размерности массива.
Да, сойдет. Тогда сокращаем до:
====================================
#!/usr/bin/perl
$salt = join \'\', (\'.\', \'/\', 0..9, \'A\'..\'Z\', \'a\'..\'z\')[rand 64, rand 64, rand 64, rand 64, rand 64, rand 64, rand 64]; #Пароль на 7 симолов
print "Content-type: text/html\\n\\n";
print $salt;
====================================
HTML-ем то и не пахнет.
А следом пойдет сообщение, типа что ваш скрипт нифига не работает :) Лучше уж пусть так. И результат на лицо...
-
@chr=(0..9,A..Z);
$psw = join("", @chr[map{rand @chr}(1..5)]);
-
Пасибо всем за подсказки.
После некототой доратотки я пришел к выводу, что для меня пойдет следующая генерилка:
$kol=8; # длина пароля
for ($i=1;$i<=$kol;$i++){$pass.= (0..9, \'A\'..\'Z\', \'a\'..\'z\')[rand 62]}
Ура!!! кофе подействовало и фантазия заработала.
-
а еще было бы неплохо придумать как бы сделать их более звучными (т.е. проверять и влиять на кол-во гласных исогласных). для лучшей запоминаемости