Ich habe hier ein PHP-Skript vorliegen, dass ich gerne in Perl hätte. Leider scheint meine Übersetzung nicht zu stimmen. Vielleicht bekommt einer von euch den Fehler raus:
<? echo generate(); function generate(){ $Charset=array_merge(range('0','9'),range('a','z'),range('A','Z')); mt_srand((double)microtime()*1000000); for ($i=1;$i<=(count($Charset)*2);$i++) { $swap = mt_rand(0,count($Charset)-1); $tmp = $Charset[$swap]; $Charset[$swap] = $Charset[0]; $Charset[0] = $tmp; } $string = implode('',$Charset).substr(md5(time()), 0, 5).implode('',$Charset).substr(md5(substr(sha1(mktime()), 0, 10)), 0, 5); $ende = rand(20, strlen($string)-20); $start = $ende-20; return substr($string, $start, $ende); } ?>
übersetz nach Perl (fehlerhaft anscheinen):
#!/usr/bin/perl use Time::HiRes "gettimeofday"; use Digest::MD5 "md5"; use Digest::SHA1 "sha1"; ###################### sub generate_hash{ # Generiert den HASH ###################### @Charset=(0..9,a..z,A..Z); srand(gettimeofday()*1000000); for ($i=1;$i<=(@Charset*2);$i++) { $swap = rand(@Charset+1); $tmp = $Charset[$swap]; $Charset[$swap]= $Charset[0]; $Charset[0] = $tmp; } $string = join('',@Charset).substr(md5(time()), 0, 5).join('',@Charset).substr(md5(substr(sha1(time()), 0, 10)), 0, 5); $ende = rand(length($string)-40+1)+20; $start = $ende-20; return substr($string, $start, $ende); } print generate_hash();
Vielen Dank schoneinmal!
mfg,
lionstarr