Algorytm pseudolosowej generacji thumbnail|320px|Etap pośredni RC4. Bajt strumienia szyfrującego K jest tworzony poprzez znalezienie wartości w S wskazywanej przez S[i] + S[j] (modulo 256).
Algorytm pseudolosowej generacji modyfikuje stan tablicy S i generuje bajt strumienia szyfrującego tyle razy, ile wynosi długość tekstu oryginalnego. Za każdym razem algorytm zwiększa i o 1, dodaje do j wartość w S wskazywaną przez i, zamienia ze sobą wartości S[i] i S[j] oraz jako wynik daje wartość z S wskazywaną przez S[i] + S[j] (modulo 256). Każda wartość S jest zamieniana co najmniej raz na każde 256 iteracji.
i := 0 j := 0 while TworzonyStrumieńSzyfrujący: i := (i + 1) mod 256 j := (j + S[i]) mod 256 zamień(S[i],S[j]) wynik S[(S[i] + S[j]) mod 256]
Wektory testowe Wektory testowe podane poniżej nie mają statusu oficjalnego, jednak są dogodne dla każdego, kto chce przetestować swoją implementację RC4. Dane wejściowe są w formacie ASCII, dane wyjściowe w formacie heksadecymalnym
RC4( "Key", "Plaintext" ) == BBF316E8D940AF0AD3 RC4( "Wiki", "pedia" ) == 1021BF0420 RC4( "Secret", "Attack at dawn" ) == 45A01F645FC35B383552544B9BF5 RC4( "Kry", "ptologia" ) == 015C5F30796B0B94