Thread möchte cryptische Routine verstehen
(5 answers)
Opened by Jens at 2009-06-16 16:28
Hallo zusammen,
ich bin leider noch ein ziemlicher Perl Anfänger und möchte folgende Perl Routine in Python umschreiben. Hab so meine Probleme die kompakte Schreibweise zu verstehen... Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 sub Encrypt($$$) { do 'bigint.pl'; $_ = shift; my $n = shift; my $m = shift; my $d = 0; my $k; s/^.(..)*$/0$&/;($k=unpack('B*', pack('H*', $_)))=~s/^0*//; my $x = 0; my $z = $n=~s/./$x=&::badd(&::bmul($x, 16), hex$&)/ge; my $w = ((2*$d-1+$z)&~1)/2; $_ = substr($m."\0"x$w, 0, $w); my $c = 0; s/.|\n/$c=&::badd(&::bmul($c, 256), ord$&)/ge; my $r = 1; my $t; $_ = $k; s/./$r=&::bmod(&::bmul($r, $r), $x), $&?$r=&::bmod(&::bmul($r, $c), $x):0,""/ge; ($r, $t)=&::bdiv($r, 256),$_=pack(C, $t).$_ while$w--+1-2*$d; return unpack('H*', $_); } Möchte mir jemand helfen und die Routine etwas aufschlüsseln und das Ganze etwas mehr ausschreiben? Auch ein paar Erläuterungen wären super. Wo kommt z.B. "C" aus Zeile 18 her? Die Routine läuft bei mir mit aktuellem Perl Interpreter im SciTE (deaktivierte Warnings) einwandfrei. Danke! Gruß Jens |