<?xml version="1.0" encoding="windows-1252"?>
<node id="440362" title="System Independant Rand-JAPH" created="2005-03-17 08:11:59" updated="2005-08-09 13:01:36">
<type id="1588">
obfuscated</type>
<author id="434261">
ktross</author>
<data>
<field name="doctext">
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.

&lt;CODE&gt;
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(/,/,@_),$_=&amp;_($_),return @_}sub _{return unpack(
"N", pack("B32",substr("0"x32 . shift,-32)));} rand(@_);
&lt;/CODE&gt;

Does this work for everyone?
&lt;br&gt;&lt;br&gt;
&lt;READMORE&gt;
&lt;b&gt; Explanation:&lt;/b&gt;
&lt;spoiler&gt;
I am attempting to make this version of a random-generated-JAPH system independant by over ridding the built-in rand function.  The new rand function generates a psuedo-random binary bitstream, using what equates to a shift register and an XOR gate.  The binary value of the shift register is converted to a decimal number using the subroutine sub _.  The string "Just Another Perl Hacker," is then character mapped onto the 'random' number stream. 
&lt;/spoiler&gt;
</field>
</data>
</node>
