Zu guter letzt ist natürlich die Grundsatzkritik: Warum etwas selbst programmieren, was bestenfalls nur genauso gut, wahrscheinlich aber schlechter und unsicherer ist, wenn es dafür schon fertige Module gibt?
wie gesagt, um die Technik zu erklären (allerdings fehlt dann berechtigterweise der Hinweis auf die Module).
und wegen dem "wahrscheinlich schlechter".
Das ist aus CGI::Session::ID::MD5
sub generate_id {
my $self = shift;
my $md5 = new Digest::MD5();
$md5->add($$ , time() , rand(9999) );
return $md5->hexdigest();
}
Das von Rolf
sub makeSID{
my @chars = ('A' .. 'Z', 'a' .. 'z', 0 .. 9, '+', '-');
my $len = scalar @chars;
my $id .= time();
$id .= $$;
for(my $i = 0; $i < $len; $i++){
$id .= $chars[int(rand($len))];
}
$id = substr($id, 0, $len);
$id = md5_hex($id);
return $id;
}
Da ist, soweit ich das erkennen kann, die Version von Rolf um einiges mehr zufällig.
Struppi.