public static void Main(string[] args) { //!->Has Arguments if (args.Length != 0) { foreach (string arg in args) { FullHashCalc(arg); } } else { //Register Encoding Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); char ch; //Print Title PrintTitle(); //Print Cryptography Table PrintCryptographyTable(); while (true) { ch = Console.ReadKey().KeyChar; if (ch == '1')//Triple-DES { TripleDES tdes = new TripleDES(); Console.Write("\nChoose Encrypt or Decrypt [e/d]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'e' || ch == 'E') { Console.Write("\nInput PlainText: "); tdes.Text = Console.ReadLine(); string cipherText = tdes.Encrypt(); Console.WriteLine($"Get Random Key: {tdes.Key}"); Console.WriteLine($"Get Random IV: {tdes.IV}"); Console.WriteLine($"The Cipher Text is: {cipherText}"); break; } else if (ch == 'd' || ch == 'D') { Console.Write("\nInput CipherText: "); tdes.Text = Console.ReadLine(); Console.Write("Input Key: "); tdes.Key = Console.ReadLine(); Console.Write("Input IV: "); tdes.IV = Console.ReadLine(); string plainText = tdes.Decrypt(); Console.WriteLine($"The Plain Text is: {plainText}"); break; } } break; } else if (ch == '2')//MD5 { MD5 md5 = new MD5(); Console.Write("\nChoose File or Text [f/t]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'f' || ch == 'F') { Console.Write("\nInput File Path: "); md5.FilePath = Console.ReadLine(); string hashCode = md5.ComputeHashFromFile(); Console.WriteLine($"The MD5 Code is: {hashCode}"); break; } else if (ch == 't' || ch == 'T') { Console.Write("\nInput Text: "); md5.Text = Console.ReadLine(); string hashCode = md5.ComputeHashFromText(); Console.WriteLine($"The MD5 Code is: {hashCode}"); break; } } break; } else if (ch == '3')//SHA1 { SHA1 sha1 = new SHA1(); Console.Write("\nChoose File or Text [f/t]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'f' || ch == 'F') { Console.Write("\nInput File Path: "); sha1.FilePath = Console.ReadLine(); string hashCode = sha1.ComputeHashFromFile(); Console.WriteLine($"The SHA1 Code is: {hashCode}"); break; } else if (ch == 't' || ch == 'T') { Console.Write("\nInput Text: "); sha1.Text = Console.ReadLine(); string hashCode = sha1.ComputeHashFromText(); Console.WriteLine($"The SHA1 Code is: {hashCode}"); break; } } break; } else if (ch == '4')//SHA256 { SHA256 sha256 = new SHA256(); Console.Write("\nChoose File or Text [f/t]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'f' || ch == 'F') { Console.Write("\nInput File Path: "); sha256.FilePath = Console.ReadLine(); string hashCode = sha256.ComputeHashFromFile(); Console.WriteLine($"The SHA256 Code is: {hashCode}"); break; } else if (ch == 't' || ch == 'T') { Console.Write("\nInput Text: "); sha256.Text = Console.ReadLine(); string hashCode = sha256.ComputeHashFromText(); Console.WriteLine($"The SHA256 Code is: {hashCode}"); break; } } break; } else if (ch == '5')//SHA384 { SHA384 sha384 = new SHA384(); Console.Write("\nChoose File or Text [f/t]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'f' || ch == 'F') { Console.Write("\nInput File Path: "); sha384.FilePath = Console.ReadLine(); string hashCode = sha384.ComputeHashFromFile(); Console.WriteLine($"The SHA384 Code is: {hashCode}"); break; } else if (ch == 't' || ch == 'T') { Console.Write("\nInput Text: "); sha384.Text = Console.ReadLine(); string hashCode = sha384.ComputeHashFromText(); Console.WriteLine($"The SHA384 Code is: {hashCode}"); break; } } break; } else if (ch == '6')//SHA512 { SHA512 sha512 = new SHA512(); Console.Write("\nChoose File or Text [f/t]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'f' || ch == 'F') { Console.Write("\nInput File Path: "); sha512.FilePath = Console.ReadLine(); string hashCode = sha512.ComputeHashFromFile(); Console.WriteLine($"The SHA512 Code is: {hashCode}"); break; } else if (ch == 't' || ch == 'T') { Console.Write("\nInput Text: "); sha512.Text = Console.ReadLine(); string hashCode = sha512.ComputeHashFromText(); Console.WriteLine($"The SHA512 Code is: {hashCode}"); break; } } break; } else if (ch == '7')//CRC32 { CRC32 crc32 = new CRC32(); Console.Write("\nChoose File or Text [f/t]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'f' || ch == 'F') { Console.Write("\nInput File Path: "); crc32.FilePath = Console.ReadLine(); string hashCode = crc32.ComputeHashFromFile(); Console.WriteLine($"The CRC32 Code is: {hashCode}"); break; } else if (ch == 't' || ch == 'T') { Console.Write("\nInput Text: "); crc32.Text = Console.ReadLine(); string hashCode = crc32.ComputeHashFromText(); Console.WriteLine($"The CRC32 Code is: {hashCode}"); break; } } break; } else if (ch == '8')//AES { AES aes = new AES(); Console.Write("\nChoose Encrypt or Decrypt [e/d]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'e' || ch == 'E') { Console.Write("\nInput PlainText: "); aes.Text = Console.ReadLine(); string cipherText = aes.Encrypt(); Console.WriteLine($"Get Random Key: {aes.Key}"); Console.WriteLine($"Get Random IV: {aes.IV}"); Console.WriteLine($"The Cipher Text is: {cipherText}"); break; } else if (ch == 'd' || ch == 'D') { Console.Write("\nInput CipherText: "); aes.Text = Console.ReadLine(); Console.Write("Input Key: "); aes.Key = Console.ReadLine(); Console.Write("Input IV: "); aes.IV = Console.ReadLine(); string plainText = aes.Decrypt(); Console.WriteLine($"The Plain Text is: {plainText}"); break; } } break; } else if (ch == 'f' | ch == 'F')//FULL HASH { FullHashCalc(String.Empty); break; } else if (ch == 'b' | ch == 'B')//BASE64 Code { Console.Write("\nChoose Encode or Decode [e/d]: "); while (true) { ch = Console.ReadKey().KeyChar; if (ch == 'e' || ch == 'E') { Console.Write("\nInput PlainText: "); string plainText = Console.ReadLine(); string cipherText = Base64.Encode(plainText); Console.WriteLine($"The Encoded Text is: {cipherText}"); break; } else if (ch == 'd' || ch == 'D') { Console.Write("\nInput CipherText: "); string cipherText = Console.ReadLine(); string plainText = Base64.Decode(cipherText); Console.WriteLine($"The Plain Text is: {plainText}"); break; } } break; } } } Console.ReadKey(); }