t-cards.ru

t-cards.ru> Hard"n"Soft
>> FAQ


: " RC4 PHP..."
27.05.2009 17:03
Admin

: 05.10.2005
:
: 272
 RC4 PHP

/* , */

function rc4 ($pass, $data) {
$n = 8; //

$S = range(0, pow(2, $n) - 1);

$ar_data = str_split($data);
$dlen = count($ar_data);

$ar_pass = str_split($pass);
$klen = count($ar_pass);

$j = 0;
for ($i = 0; $i <= pow(2, $n) - 1; $i++){
$j = ($j + $S[$i] + ord($ar_pass[$i % $klen])) % pow(2, $n);
$tmp = $S[$i];
$S[$i] = $S[$j];
$S[$j] = $tmp;
} //for

$i = $j = 0;
for ($m = 0; $m < $dlen; $m++) {
$i = ($i + 1) % pow(2, $n);
$j = ($j + $S[$i]) % pow(2, $n);

$tmp = $S[$i];
$S[$i] = $S[$j];
$S[$j] = $tmp;

$k = $S[($S[$i] + $S[$j]) % pow(2, $n)];

$ar_data[$m] = chr(ord($ar_data[$m]) ^ $k);
}

return implode("", $ar_data);
}