1
0
mirror of https://github.com/danog/phpseclib.git synced 2024-11-27 04:46:26 +01:00

RC4: speedups

This commit is contained in:
terrafrost 2014-06-16 09:19:14 -05:00
parent 90bc07e292
commit 0938cba3c3

View File

@ -267,10 +267,7 @@ class Crypt_RC4 extends Crypt_Base
{ {
$key = $this->key; $key = $this->key;
$keyLength = strlen($key); $keyLength = strlen($key);
$keyStream = array(); $keyStream = range(0, 255);
for ($i = 0; $i < 256; $i++) {
$keyStream[$i] = $i;
}
$j = 0; $j = 0;
for ($i = 0; $i < 256; $i++) { for ($i = 0; $i < 256; $i++) {
$j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255; $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255;
@ -324,7 +321,7 @@ class Crypt_RC4 extends Crypt_Base
$keyStream[$i] = $ksj; $keyStream[$i] = $ksj;
$keyStream[$j] = $ksi; $keyStream[$j] = $ksi;
$text[$k] = chr(ord($text[$k]) ^ $keyStream[($ksj + $ksi) & 255]); $text[$k] = $text[$k] ^ chr($keyStream[($ksj + $ksi) & 255]);
} }
return $text; return $text;