public class CaesarCipher
const string alfabet = "АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ";
private string CodeEncode(string text, int k)
var fullAlfabet = alfabet + alfabet.ToLower();
var letterQty = fullAlfabet.Length;
for (int i = 0; i < text.Length; i++)
var index = fullAlfabet.IndexOf(c);
var codeIndex = (letterQty + index + k) % letterQty;
retVal += fullAlfabet[codeIndex];
public string Encrypt(string plainMessage, int key)
=> CodeEncode(plainMessage, key);
public string Decrypt(string encryptedMessage, int key)
=> CodeEncode(encryptedMessage, -key);
static void Main(string[] args)
var cipher = new CaesarCipher();
Console.Write("Введіть текст: ");
var message = Console.ReadLine();
Console.Write("Тепер введіть ключ: ");
var secretKey = Convert.ToInt32(Console.ReadLine());
var encryptedText = cipher.Encrypt(message, secretKey);
Console.WriteLine("Зашифроване повідомлення: {0}", encryptedText);
Console.WriteLine("Розшифроване повідомлення: {0}", cipher.Decrypt(encryptedText, secretKey));