public static void Main()
Console.WriteLine("Please, insert the message");
string message = Console.ReadLine();
string result = Decrypt.ReadMessage(message);
Console.WriteLine("Decrypting...");
Console.WriteLine("Decrypted message: " + result);
public static class Decrypt
public static string[] PrepareMessage(string message){
string[] binArray = message.Split(' ');
foreach (string bin in binArray){
binArray[index] = StringManipulate.InvertLastTwo(binArray[index]);
binArray[index] = StringManipulate.ChangeEachFour(binArray[index]);
public static string ReadMessage(string message){
string[] binArray = PrepareMessage(message);
return Binary.Interpret(binArray);
public static class StringManipulate
public static string InvertLastTwo(string oldString){
string start = oldString.Substring(0,6);
string char6 = oldString[6] == '0' ? "1" : "0";
string char7 = oldString[7] == '0' ? "1" : "0";
string newString = start + char6 + char7;
public static string ChangeEachFour(string oldString){
string newString = oldString.Substring(4,4) + oldString.Substring(0,4);
public static class Binary
public static string Interpret(string[] binaryArray){
foreach(string letter in binaryArray){
newString += (char)Convert.ToInt32(letter,2);