★付き発言転載のガイドライン Part2

このエントリーをはてなブックマークに追加
321水先案名無い人
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);