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

Urldecode string (LUA)
FFMPEG Convert YUV444p to YUV420p (BASH)
Forcing FFMPEG to honour segment length in HLS Stream Creator (BASH)
Force CURL to place request to a specific IP (BASH)
Set a variable only if it is undefined (Javascript)
Ignore query string with Nginx caching proxy (NGinx)
Get breakdown of UK and non-UK votes for a Parliamentary Petition (Python)
Decompress Mozilla Firefox jsonlz4 bookmark backup files (Python)
Setting Git author details for a single repo (Git)
Checking Virtual Machine Resource Allocations with Libvirt (BASH)

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