#!/usr/bin/python import sys # RC4.py state, x, y, i1, i2, key = range(0,256), 0,0, 0,0, sys.argv[1] for i in range(0,256): state[i], state[i2], i1, i2= state[(ord(key[i1])+state[i]+i2) % 256], state[i], (i1+1) % len(key), (ord(key[i1])+state[i]+i2) % 256 while (1): s=sys.stdin.read(1) if not s: break x, y, ch = (x+1) % 255, (y+state[(x+1) % 255])%256, ord(s) state[x], state[y] = state[y], state[x] sys.stdout.write(chr(ch^state[(state[x]+state[y]) % 256]))