go ahead... be a heretic PerlMonks

### System Independant Rand-JAPH

by ktross (Deacon)
 on Mar 17, 2005 at 13:11 UTC Need Help??

I've seen a couple of Obfus here that are based upon the predictable nature of perl's random number generator. Unfortunately, these solutions tend to be system/version dependant. Here is my attempt at a rand-JAPH that overcomes this issue.
```use subs qw(rand);@" =(-31,1,57,87,-46,26,27,6,0,46,,72,
36,-7,-3,-4,-2,50,3,-6,58,16,2,-15,56,15);@_=(1,0,1,0,0,
1,1);\$!=0; for(1..25) {@_=rand(@_);print chr(\$_+@"[\$!]);
\$!++;}sub rand{unshift(@_,\$_[3]^\$_[5]), pop(@_), \$_= '',
\$_=join(/,/,@_),\$_=&_(\$_),return @_}sub _{return unpack(
"N", pack("B32",substr("0"x32 . shift,-32)));} rand(@_);
Does this work for everyone?

Explanation:

Replies are listed 'Best First'.
Re: System Independant Rand-JAPH
by starbolin (Hermit) on Mar 18, 2005 at 00:25 UTC

Works under Perl 5.8.5, 64 bit int, FreeBSD 5.3. Otherwise, pretty twisted, I'm still trying to /obfu.

Though it's not really an overload of rand() as it modifies global \$_. Thought you'd get me there, did you?

s//----->\t/;\$~="JAPH";s//\r<\$~~/;{s|~\$~-|-~\$~|||s |-\$~~|\$~~-|||s,<\$~~,<~\$~,,s,~\$~>,\$~~>,, \$|=1,select\$,,\$,,\$,,1e-1;print;redo}

Create A New User
Node Status?
node history
Node Type: obfuscated [id://440362]
Approved by teamster_jr
help
Chatterbox?
 [Corion]: Greetings from the German Perl Workshop ;) [1nickt]: Isn't it YAPC::NA too? [Corion]: Yes, but I think there's not that much overlap in our audiences ;)) [1nickt]: Sheesh, I would have thought they would be satellite-linked somehow! [1nickt]: Who's writing all the code this week, then?

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2017-06-27 20:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
How many monitors do you use while coding?

Results (613 votes). Check out past polls.