RC4 Encrypt
//rc4.py
#!/usr/bin/env python
def rc4(data,key):
keylength = len(key)
S = list(range(256))
j = 0
for i in range(256):
j = (j + S[i] + key[i % keylength]) % 256
S[i], S[j] = S[j], S[i] # swap
i = 0
j = 0
encrypted = bytearray()
for n in range(len(data)):
i = (i + 1) % 256
j = (j + S[i]) % 256
S[i], S[j] = S[j], S[i] # swap
encrypted.append(data[n] ^ S[(S[i] * S[j]) % 256])
return encrypted
if __name__ == '__main__':
if len(sys.argv)!=3:
print("python3 rc4.py key filename")
key = sys.argv[1]
filename = sys.argv[2]
with open(filename,'rb') as f:
data = f.read()
encrypted = rc4(data,key.encode())
with open(f"{filename}.enc",'wb') as f:
f.write(encrypted)
print(f"Write to {filename}.enc)
Last updated