Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys, binascii, random
- def bytes_xor(a,b):
- # xor two bytestrings of different lengths,
- # truncating the longest one if necessary
- k = []
- if len(a) > len(b):
- for (x, y) in zip(a[:len(b)], b):
- k.append(x ^ y)
- else:
- for (x, y) in zip(a, b[:len(a)]):
- k.append(x ^ y)
- return bytes(k)
- def random_key(size=16):
- # make a random bytestring of specified length
- ints = []
- for i in range(size):
- ints.append(random.randint(0x00,0xFF))
- return bytes(ints)
- def ascii_2_bytes(msg):
- return bytearray(msg, 'ascii')
- def encrypt(key, msg):
- # returns the hexadecimal encoding of the resulting cipher
- cipher = bytes_xor(key, ascii_2_bytes(msg))
- return (str(binascii.hexlify(cipher))[2:-1])
- if __name__ == '__main__':
- key = random_key(1024)
- secret_messages = [ ... ] # you're not having them that easily
- for msg in secret_messages:
- print (encrypt(key, msg))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement