Nice job, everyone!
Here's my latest version at 144...thing is it's odd, doesn't 'look' like 
it should work yet it does, I've tested encrypting and decrypting all 
types of binary files and just plain text and never a problem..also 
tried all kinds of keys up to 128bits - any ideas? some more info on 
oddness below

So at 144:
sub f{@s[$x,$y]=@s[($y+=$s[$x])%=@s,$x];
$s[$x++]+$s[$y]-@s}@k=pop=~/../g;
f$y+=hex$k[$x%@k]for@s=0..255;$x=1;
$y=$/=\1;print$_^chr$s[f$x%=@s]for<>

I'm using $/=\1; for multi-line input (and got rid of the =~/./g to keep 
the same size) but instead of having $y=0; I'm doing $y=$/=\1;

$y=\1 is a scalar and $y+0 becomes a nice, long number..but still, no probs

Even more strange, if I stick nothing but a print"$y"; inside of the 
sub, the program ceases to encrypt correctly.  But if I do a print $y; 
it works fine!  It has to do with the quotes because a print ""; will 
mess it up, as will a print ''; but a print; won't...ideas?

-Samy

Rocco Caputo wrote:

> The full version is at 146:
> 
> sub f{@s[$x,$y]=@s[($y+=$s[$x])%=@s,$x];
> $s[$x++]+$s[$y]-@s}@k=pop=~/../g;f$y+=he
> x$k[$x%@k]for@s=0..255;$x=1;$y=0;print$_
> ^chr$s[f$x%=@s]for<>=~/./g
> 
> -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sf.net
> 
> 
> 


-- 
Samy Kamkar -- (877) 898-1424 -- [EMAIL PROTECTED]
LucidX.com / cobra.LucidX.com / LA.pm.org / code.LucidX.com

Reply via email to