void
EnCrypt(
BYTE
*pKey,
int
keyLen,
BYTE
*pData,
int
datenLen)
{
BYTE
RC4_sbox[256];
int
i = 0, j = 0, k = 0, temp = 0, t = 0;
for
(j = 0; j < 256; j++)
RC4_sbox[j] = j;
j = 0;
for
(i=0; i < 256; i++)
{
j = (j + RC4_sbox[i] + pKey[i % keyLen]) % 256;
temp = RC4_sbox[i];
RC4_sbox[i] = RC4_sbox[j];
RC4_sbox[j] = temp;
}
for
(k=0; k < datenLen; k++)
{
i = (i + 1) % 256;
j = (j + RC4_sbox[i]) % 256;
temp = RC4_sbox[i];
RC4_sbox[i] = RC4_sbox[j];
RC4_sbox[j] = temp;
t = (RC4_sbox[i] + RC4_sbox[j]) % 256;
pData[k] = (pData[k] ^ RC4_sbox[t]);
}
}