【スレッド】2ch型掲示板 その7【フロート型】

このエントリーをはてなブックマークに追加
469>466
my ($md5datefile, $date, $idnum, $random, $idcrypt);

$md5datefile = './md5.cgi';
$date = substr($DATE, 0, 8);
$idnum = substr($ENV{'REMOTE_ADDR'}, -6) . $FORM{'bbs'} . $date;
#$idnum =~ tr/a-zA-Z0-9_//cd;

if ( open(MD5FILE, '<'.$md5datefile) ) {
 my ($md5date, $md5number) = split(/<>/, <MD5FILE>);
 close(MD5FILE);
 $random = $md5number if ($md5date eq $date);
}

unless ($random) {
 my $data = '';

 sysopen(RANDOM, '/dev/urandom', 'O_READ') or &DispError('/dev/urandom が開けない!');
 sysread(RANDOM, $data, 8);
 close(RANDOM);

 open(MD5FILE, '>'.$md5datefile);
 flock(MD5FILE, 2);
 print MD5FILE "$date<>$data";
 close(MD5FILE);
 $random = $data;
}

chmod(0666, $md5datefile);
$idcrypt = substr(crypt($idnum, '$1$' . $random), -8);
$ID = " ID:$idcrypt";