Условие:
Ваша команда получила доступ к серверу, но важная информация в виде этой строки Nom wfv nomj ceon daiwk , была зашифрована с использованием неизвестного ключа. Взломав систему контроля версий вы нашли алгоритм шифрования:
\ndef generate_key(message, keyword):\nkey = list(keyword)\nif len(message) == len(key):\nreturn key\nelse:\nfor i in range(len(message) - len(key)):\nkey.append(key[i % len(key)])\nreturn "".join(key)
\ndef encrypt_v(plaintext, keyword):\nencrypted_text = []\nkey = generate_key(plaintext, keyword)\nfor i in range(len(plaintext)):\nif plaintext[i].isalpha():\nshift = ord(key[i].upper()) - ord('A')\nif plaintext[i].isupper():\nencrypted_char = chr((ord(plaintext[i]) + shift - ord('A')) % 26 + ord('A'))\nelse:\nencrypted_char = chr((ord(plaintext[i]) + shift - ord('a')) % 26 + ord('a'))\nencrypted_text.append(encrypted_char)\nelse:\nencrypted_text.append(plaintext[i])\nreturn "".join(encrypted_text)
\ndef decrypt_v(ciphertext, keyword):\ndecrypted_text = []\nkey = generate_key(ciphertext, keyword)\nfor i in range(len(ciphertext)):\nif ciphertext[i].isalpha():\nshift = ord(key[i].upper()) - ord('A')\nif ciphertext[i].isupper():\ndecrypted_char = chr((ord(ciphertext[i]) - shift - ord('A')) % 26 + ord('A'))\nelse:\ndecrypted_char = chr((ord(ciphertext[i]) - shift - ord('a')) % 26 + ord('a'))\ndecrypted_text.append(decrypted_char)\nelse:\ndecrypted_text.append(ciphertext[i])\nreturn "".join(decrypted_text)
\nmessage = ""
\nkeyword = ""
\nencrypted_message = encrypt_v(message, keyword)\nprint(f"Encrypted message: {encrypted_message}")
\ndecrypted_message = decrypt_v(encrypted_message, keyword)\nprint(f"Decrypted message: {decrypted_message}")

