encrypt von perl zu python
Verfasst: Montag 15. Juni 2009, 16:39
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...
Es würde mir auch schon helfen, wenn hier jemand gut Perl kann und mir das etwas aufschlüsselt und das ganze etwas mehr ausschreibt.
Das Ganze ist für mich gerade, wie wenn ein Python Anfänger auf so nen Blödsinn stößt
Danke! 
Gruß
Jens
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: Alles auswählen
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*',$_);
}
Das Ganze ist für mich gerade, wie wenn ein Python Anfänger auf so nen Blödsinn stößt

Code: Alles auswählen
g=lambda x:x<<2;r=[g(i)|g(i-1)for i in range(16)]

Gruß
Jens