On Dec 17, 2007 7:06 PM, Grace Shibley <shibleyg@xxxxxxxxx> wrote: > Hi Everyone, > > We have an encryption function that was written in another language that we > needed translated to PHP. > > Here's the function: > > function rc4 pText, pKey > -- initialize > repeat with i = 0 to 255 > put i into S1[i] > end repeat > > put 0 into i > repeat with n = 0 to 255 > add 1 to i > if i > length(pkey) then put 1 into i > put chartonum(char i of pKey) into S2[n] > end repeat > > put 0 into j > repeat with i = 0 to 255 > put (j + S1[i] + S2[i]) mod 256 into j > put S1[i] into temp > put S1[j] into S1[i] > put temp into S1[j] > end repeat > > -- encrypt/decrypt > put 0 into i ; put 0 into j > repeat for each char c in pText > put chartonum(c) into tChar > > put (i + 1) mod 256 into i > put (j + S1[i]) mod 256 into j > put S1[i] into temp > put S1[j] into S1[i] > put temp into S1[j] > put (S1[i] + S1[j]) mod 256 into t > put S1[t] into K > > put numtochar(tChar bitXor K) after tOutput > end repeat > > return tOutput > end rc4 > > Can anyone help us with this? We don't mind paying via PayPal :) > > Thanks! > grace > function rc4($pText, $pKey) { // initialize $S1 = range(0, 255); $S2 = array(); $i = 0; for ($n=0; $n<=255; $n++) { $i++; if ($i > strlen($pkey)) $i = 1; $S2[] = ord($pKey[$i]); } $j = 0; for ($i=0; $i<=255; $i++) { $j = ($j + $S1[$i] + $S2[$i]) % 256; $temp = $S1[$i]; $S1[$i] = $S1[$j]; $S1[$j] = $temp; } // encrypt/decrypt $i = $j = 0; $tOutput = ''; foreach (str_split($pText) as $c) { $tChar = ord($c); $i = ($i+1) % 256; $j = ($j+$S1[$i]) % 256; $temp = $S1[$i]; $S1[$i] = $S1[$j]; $S1[$j] = $temp; $t = ($S1[$i] + $S1[$j]) % 256; $K = $S1[$t]; $tOutput .= chr($tChar ^ $K); } return $tOutput; } I don't know what language this is. I'm curious -- what is it? It might not work; it's untested except for syntax errors. heavyccasey@xxxxxxxxx ;] -Casey -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php