opexxx
5/22/2015 - 10:01 AM

xor.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-


string = "something something something"
key = "cheese"

def crypt(string, key):
	data = ''
	for i in range(len(string)):
		# XOR
		xc = ord(string[i]) ^ ord(key[i%len(key)])
		# Convert XOR to base 2
		xc = bin(xc)[2:].zfill(8)
		data += str( xc )

		#print string[i]
	return data

def decrypt(string, key):
	data = ''
	for i in range( (len(string)+1) / 8):
		# Convert each 8 bits to base 10
		x = int(  string[((i+1)*8)-8:(i+1)*8], 2  )
		# XOR with key
		data += chr(  x ^ ord(key[i%len(key)])  )
	return data

print "String: %s - Key: %s \n \n%s\n" % (string, key, "="*10)

x = crypt(string, key)
print x + "\n"

y= decrypt(x, key)
print y + "\n"