def encrypt(message: str, key: str) -> str: cipher = [] for m, k in zip(message, key): cipher += [hex(ord(m) ^ ord(k))] return " ".join(cipher) def decrypt(cipher: str, key: str) -> str: message = "" cipher = cipher.split(" ") for c, k in zip(cipher, key): message += chr(int(c, base=16) ^ ord(k)) return message encrypt('Wesley', 'AAAAAA') # '0x16 0x24 0x32 0x2d 0x24 0x38' decrypt('0x16 0x24 0x32 0x2d 0x24 0x38', 'AAAAAA') # 'Wesley'