332 :マァヴ ★ :01/10/14 04:59 ID:???
#IDを生成する
use Digest::MD5;
my $md5 = Digest::MD5->new;
my $idnum = $ENV{'REMOTE_ADDR'};
$idnum =~ s/\./0/g;
$idnum = crypt($idnum,$idnum);
$idnum = substr($idnum,-3);
$md5->add($idnum);
$md5->add($FORM{"bbs"});
$md5->add(substr($DATE,6,2));
my $md5datefile = "************";
if(-e $md5datefile){
open(MD5FILE,"<$md5datefile");
my $md5line = <MD5FILE>;
close(MD5FILE);
my ($md5date,$md5number) = split /<>/,$md5line;
if($md5date eq $MD5DATE){
$md5->add($md5number);
}else{
open(MD5FILE,">$md5datefile");
srand(time^$$);
my $data=int(rand(100000000));
print MD5FILE "$MD5DATE<>$data";
close(MD5FILE);
$md5->add($data);
}
333 :マァヴ ★ :01/10/14 04:59 ID:???
}else{
open(MD5FILE,">$md5datefile");
srand(time^$$);
my $data=int(rand(100000000));
print MD5FILE "$MD5DATE<>$data";
close(MD5FILE);
$md5->add($data);
}
my $idcrypt = $md5->b64digest;
$idcrypt = substr($idcrypt,0,8);
my $outdat;
334 :マァヴ ★ :01/10/14 05:01 ID:???
**********で隠してるのがファイルね(^_^;)言うまでもなく
スキルある人は弱点を指摘してくだされ・・・・
335 :ヽ(´ー`)ノ :01/10/14 05:03 ID:Yj9Cwex2
>>332 乱数取得は↓これ。
sysopen(RANDOM, "/dev/random", O_READ) || die "cannot open /dev/random $!\n";
sysread(RANDOM, $data, 16);
close(RANDOM);