Programación Web y Scripting > Perl
Traduccion De Codigo En Perl --- Expertos
Kesar:
Hola a todos, yo soy programador web, pero no se programar en perl :(, y acaba de llegar esta funcion a mis manos y tengo k traducirla a javascript, por eso simplemente necesitaria que alguien me comentase el significado de las lineas que os marco con -------------------??, ya que creo k sabiendo el significado de esas lines yo podria entender la funcion y así podría pasarla a javascript,
Muchas gracias a todos :)
--- Código: Text --- sub decode{ $decoded = ''; $f = ''; ($y) = @_; use MIME::Base64; -------------------?? $decoded = decode_base64($y); $a = unpack("H*",$decoded);-------------------?? ## this is the offset hex table ## this simple encryption just adds/subtracts a certain value ## for each character. @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f');-------------------?? $w = 0; foreach $love (@off){-------------------?? $h = substr($a,$w,2);-------------------?? $d = hex $h;-------------------?? $l = hex $love; $letter = $d - $l; $aa = pack("I*",$letter);-------------------?? $q = substr($aa,0,1); $f = $f.$q; $w = $w + 2; } $f = substr($f,0,length($decoded)); return $f;}
hippie:
Que "librerias" usa aparte de MIME::Base64? :blink:
Kesar:
Hola hippie, disculpa la tardanza, es que tuve problemas con el pc.
Te pongo el codigo tal cual lo tengo, pero como no tengo ni idea de perl no se si falta algo o no :unsure: pero creo que solo usa la MIME::Base64
--- Código: Text --- ## u'll need MIME::Base64 to get it to work aka C:\>echo install MIME-Base64|ppm $nicething = '-'x60;system('cls');print "\t".$nicething."\n";print "\t".' Obscure'."\n";print "\t".$nicething."\n"; if (@ARGV) {$passwd = $ARGV[0]} else {print "\t\t usage: MDecode.pl userlist.dat\n\n";exit;} sub decode{ $decoded = ''; $f = ''; ($y) = @_; use MIME::Base64; $decoded = decode_base64($y); $a = unpack("H*",$decoded); ## this is the offset hex table ## this simple encryption just adds/subtracts a certain value ## for each character. @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f'); $w = 0; foreach $love (@off){ $h = substr($a,$w,2); $d = hex $h; $l = hex $love; $letter = $d - $l; $aa = pack("I*",$letter); $q = substr($aa,0,1); $f = $f.$q; $w = $w + 2; } $f = substr($f,0,length($decoded)); return $f;} if (open (PASSF,$passwd)){ while (<PASSF>){ $dom = substr ($_,0,45); $dom =~ s/ //g; $user = substr ($_,45,30); $user =~ s/ //g; $enc = substr ($_,195,19); $enc =~ s/ //g; push(@enc,$enc); push(@user,$user); push(@dom,$dom); } close(PASSF); $x = 0; while ($x != $#enc+1){ print "\t\t".$user[$x].'@'.$dom[$x]."\t-->\t".&decode($enc[$x])."\n"; $x++; }} else {print "\t\t\tCould not open $passwd"};
hippie:
:( Lo siento no se, pero esto te podra ayudar, talvez.
"Al intentar ejecutar un guion se obtiene <<Pemission denied>>.
Compruébese los permisos en el guión, para ejecutar el guión Perl necesita permisos de lectura. Por Ejemplo :
---x------ 1 navarra 46 Apr 23 13::14 hello "
Yo creeo que las ----- son de permisos y el ? significa 0 o 1 vez. Ejemplo pe?p. Identificación pp o pep
clauclau:
Hola como estas no tengo demaciada experiencia en perl pero algo puedo ayudarte.
Lo que estas haciiendo cuando haces use MIME::Base64; es llamar a una funcion del paquete que tenes definido como MIME.
Cuando haces: @off = (54,68,65,20,73,65,74,75,70,20,70,72,'6f',63,65,'9f') estas definiendo una estructura off a la cual le asignas todos esos elementos, pudiendola usar despues accediendo por un indice.
Entonce cuando haces: foreach $love (@off) estas reorriendo esta estructura por cada ellemnto.
Esto: substr($a,$w,2) es una funcion q hace algo recibiendo 3 parametros.
Espero haberte ayudado, suerte.
claudia
Navegación
[#] Página Siguiente
Ir a la versión completa