public class EncryptionProgram
Console.WriteLine("Welcome to the Encryption Program!");
Console.WriteLine("---------------------------------");
Console.WriteLine("Choose an option:");
Console.WriteLine("1. Encrypt a message");
Console.WriteLine("2. Decrypt a message");
Console.WriteLine("3. Exit");
Console.Write("Enter your choice (1, 2, or 3): ");
if (!int.TryParse(Console.ReadLine(), out choice))
Console.WriteLine("Invalid choice. Please try again.");
Console.Write("Enter the message to encrypt: ");
string message = Console.ReadLine();
string encryptedMessage = Encrypt(message);
Console.WriteLine("Encrypted message: " + encryptedMessage);
Console.Write("Enter the message to decrypt: ");
string message = Console.ReadLine();
string decryptedMessage = Decrypt(message);
Console.WriteLine("Decrypted message: " + decryptedMessage);
Console.WriteLine("Exiting the program. Goodbye!");
Console.WriteLine("Invalid choice. Please try again.");
static private string Encrypt(string message)
return ShiftMessage(message, 9);
static private string Decrypt(string encryptedMessage)
return ShiftMessage(encryptedMessage, -9);
static private string ShiftMessage(string message, int shift)
string processedMessage = "";
foreach (char c in message)
char shiftedChar = ShiftChar(c, shift);
processedMessage += shiftedChar;
static private char ShiftChar(char c, int shift)
char baseChar = char.IsUpper(c) ? 'A' : 'a';
int newPosition = (c - baseChar + shift + alphabetSize) % alphabetSize;
char shiftedChar = (char)(baseChar + newPosition);