import pickle import base64 try: f = open(".pwd", "rb") password = pickle.load(f) except IOError or EOFError: password = {} pass pwd = "G!thuB" def encode(string, key=pwd): encoded_chars = [] for i in range(len(string)): key_c = key[i % len(key)] # ord() gives the respective ascii value encoded_c = chr(ord(string[i]) + ord(key_c) % 256) encoded_chars.append(encoded_c) encoded_string = "".join(encoded_chars) return base64.urlsafe_b64encode(encoded_string.encode()).decode() def decode(string, key=pwd): decoded_chars = [] # utf-8 to avoid character mapping errors string = base64.urlsafe_b64decode(string.encode()).decode() for i in range(len(string)): key_c = key[i % len(key)] encoded_c = chr(abs(ord(string[i]) - ord(key_c) % 256)) decoded_chars.append(encoded_c) decoded_string = "".join(decoded_chars) return decoded_string