Support customized base string array, can be random order to increase complexity. Support pre-defined key. Using: using System; using System.Text; using System.Security.Cryptography; using System.IO; using System.Linq; public static class CeasarCipher { // Default Key private const int Key = 3; // To increase the complexity of the ceaser cipher lower case"a-z", Numerics and Symbols also can be used private const string alphabets = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; private static char cipher(char c, int key) { int indexOfChar = alphabets.IndexOf(c); return (indexOfChar < 0) ? c : alphabets[(indexOfChar + key) % alphabets.Length]; } public static string Encipher(string input, int key = Key) { string output = string.Empty; foreach (char c in input) { if (c == ' ' || c == '\n') // ...