XOR string against a given key



Published: 2017-08-03 23:33:58 +0000
Categories: Python,

Language

Python

Description

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

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

License

BSD-3-Clause

Keywords

XOR, EBC, string, key, encryption,

Latest Posts


Copyright © 2019 Ben Tasker | Sitemap | Privacy Policy
Available at snippets.bentasker.co.uk, yr4pnhounvdybotb.onion and snippets.6zdgh5a5e6zpchdz.onion