RC4 属于同步流密码,同步流密码的加密器分成密钥流产生器和加密变换器两个部分。


//初始化S和T
for i = 0 to 255 do
S[i] = i;
T[i] = K[i mod L];
//S的初始置换
j = 0;
for i = 0 to 255 do
j = (j + S[i] + T[i])(mod 256)
swap(S[i],S[j]);
i = j = 0;
for each message byte Mi
i = (i + 1)(mod 256);
j = (j + S[i])(mod 256);
swap(S[i],S[j]);
t = (S[i] + S[j])(mod 256);
Ki = S[t];
Ci = Mi XOR Ki