Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
генерация случайной строки на perl |

18.04.2007, 23:25
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме: 1948091
Репутация:
1686
|
|
генерация случайной строки на perl
вообщем пишу одинскрипт надо случайно ненерить строку текста -типо пароль рамдомный можно статистической длины но вида Wq1Ys` ну вы поняли из мусора всякого -- чето ничего кроме как взять массив символов и из него рамдомно выдирать символы и слепливать их в голову не приходит
посоветуйте наверняка есть чтонить покрасивее
|
|
|

18.04.2007, 23:44
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме: 6144796
Репутация:
1095
|
|
так пойдет?
Код:
print rand_pass(16);
sub rand_pass
{
my $len = shift;
my $pass;
for (1..$len) {$pass .= chr(rand(94)+33)}
return $pass;
}
|
|
|

18.04.2007, 23:54
|
|
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме: 2869410
Репутация:
925
|
|
<?php
function randomkeys($length)
{
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
$key = $pattern{rand(0,35)};
for($i=1;$i<$length;$i++)
{
$key .= $pattern{rand(0,35)};
}
return $key;
}
?>
|
|
|

19.04.2007, 09:50
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме: 8042357
Репутация:
3742
|
|
ф-ии
sub generatePassword {
$length = shift;
$possible = 'abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRS TUVWXYZ';
while (length($pass) < $length) {
$pass .= substr($possible, (int(rand(length($possible)))), 1);
}
return $pass
}
или
sub randomPassword {
my $pass;
my $_rand;
my $password_length = $_[0];
if (!$password_length) {
$password_length = 10;
}
my @chars = split(" ",
"a b c d e f g h i j k l m n o
p q r s t u v w x y z - _ % # |
0 1 2 3 4 5 6 7 8 9");
srand;
for (my $i=0; $i <= $password_length ;$i++) {
$_rand = int(rand 41);
$pass .= $chars[$_rand];
}
return $pass;
}
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

19.04.2007, 16:20
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме: 6144796
Репутация:
1095
|
|
омг...
он же попросил красивое решение, а вы оба пишете то же самое, что он сам и придумал.. )
|
|
|

19.04.2007, 20:36
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме: 1948091
Репутация:
1686
|
|
я сейчас прямо перед чтением ответов допер что через chr можно заделать -- а тут диджи даже и код готовый кинул спасиб =)
|
|
|

20.04.2007, 23:03
|
|
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме: 1985206
Репутация:
963
|
|
Код:
use Digest::MD5;my@chars=(97..122);$str.=chr$chars[int rand scalar@chars]for(1..16);$str=Digest::MD5::md5_hex($str)
Последний раз редактировалось KSURi; 20.04.2007 в 23:41..
|
|
|

26.12.2007, 17:24
|
|
Участник форума
Регистрация: 05.09.2006
Сообщений: 184
Провел на форуме: 888851
Репутация:
203
|
|
Код:
@chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) );
$password = join("", @chars[ map { rand @chars } ( 1 .. 8 ) ]);
Последний раз редактировалось flipper; 26.12.2007 в 17:33..
|
|
|

26.12.2007, 21:24
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме: 1948091
Репутация:
1686
|
|
археолог
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|