1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/perl
use strict;
use warnings;
use Digest::MD5 ();
sub digest_mix {
my ($random1) = @_;
my $ctx = Digest::MD5->new;
for my $i (0 .. 3) {
$ctx->add($random1 & 0xff);
$random1 >>= 8;
}
return $ctx->digest;
}
{
my $_rand = time;
sub srandom {
$_rand = shift if @_;
return $_rand;
}
sub random {
$_rand = unpack("L", digest_mix($_rand));
return $_rand;
}
}
srandom(10);
for (1 .. 10) {
print random(), "\n";
}
funzt ganz gut; ist aber auch nicht wirklich "secure"\n\n
<!--EDIT|esskar|1143143697-->