class Encryption: ENCRYTPION_KEY = "MASTER_KEY" @staticmethod def vigenere(text: str, key: str, encrypt=True): result = '' for i in range(len(text)): letter_n = ord(text[i]) key_n = ord(key[i % len(key)]) if encrypt: value = (letter_n + key_n) % 1114112 else: value = (letter_n - key_n) % 1114112 result += chr(value) return result @staticmethod def encrypt(text: str): return Encryption.vigenere(text=text, key=Encryption.ENCRYTPION_KEY, encrypt=True) @staticmethod def decrypt(text: str): return Encryption.vigenere(text=text, key=Encryption.ENCRYTPION_KEY, encrypt=False)