def __init__(self): self._key = bytes2str(randomBytes(16)) extraText = ''' Um9sbGluJyBpbiBteSA1LjAKV2l0aCBteSByYWctdG9wIGRvd24gc28gbXkg aGFpciBjYW4gYmxvdwpUaGUgZ2lybGllcyBvbiBzdGFuZGJ5IHdhdmluZyBq dXN0IHRvIHNheSBoaQpEaWQgeW91IHN0b3A/IE5vLCBJIGp1c3QgZHJvdmUg YnkK''' self._extraText = base64.standard_b64decode(extraText) self._aes = AES.new(self._key, AES.MODE_ECB)
def encryptWithRandomKey(data): key = bytes2str(randomBytes(16)) if random.random() < 0.5: result = 'ECB' aes = AES.new(key, AES.MODE_ECB) else: result = 'CBC' iv = '\x00' * 16 aes = AES.new(key, AES.MODE_CBC, iv) numBytesBefore = random.randrange(5, 10) numBytesAfter = random.randrange(5, 10) # print numBytesBefore, numBytesAfter bytesBefore = bytes2str(randomBytes(numBytesBefore)) bytesAfter = bytes2str(randomBytes(numBytesAfter)) input = bytesBefore + data + bytesAfter input = pkcs7(input, 16) # input = data output = aes.encrypt(input) return output, result