def vigenere_cipher(text, key, encrypt=True): alphabet = ( "0123456789!@#$%^&*()_+-=[]{}|;:'\<>,.? /~`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわん" ) key_length = len(key) result_text = "" for i in range(len(text)): char = text[i] if char in alphabet: text_index = alphabet.index(char) key_index = alphabet.index(key[i % key_length]) if encrypt: char_index = (text_index + key_index) % len(alphabet) else: char_index = (text_index - key_index + len(alphabet)) % len(alphabet) result_text += alphabet[char_index] else: result_text += char return result_text # Пример использования plaintext = ( "Мега тайное послание из глубины глубин!" ) key = "ЯНезнаюКлючаСложнее" encrypted_text = vigenere_cipher(plaintext, key) print("Зашифрованный текст:", encrypted_text) input()