XOR string against a given key (Python)
Takes an ASCII string and XOR's it against a given "key"
Basically a really crappy encryption mechanism, though it can be useful in cryptanalysis (as it's symmetrical)
Returns the resulting string in a hex encoded form
Details
- Language: Python
- License: BSD-3-Clause
Snippet
def xorwithmykey(str,key):
kp = 0
newbuf = []
for i in range(len(str)):
newchar = ord(str[i]) ^ ord(key[kp])
newbuf.append(chr(newchar))
kp = kp + 1
if kp >= len(key):
kp = 0
return ''.join(newbuf).encode('hex')
Usage Example
>>> print xorwithmykey('foobarsed','MYS3CUR3K3Y')
2b363c51222721562f
>>> '2b363c51222721562f'.decode('hex')
'+6<Q"\'!V/'
>>> print xorwithmykey('2b363c51222721562f'.decode('hex'),'MYS3CUR3K3Y').decode('hex')
foobarsed