static void Main(string[] args) { Console.WriteLine("\t\t\t\t\t\t\t- LAB 6 -\n\nKevin Romero 1047519\nJosé De León 1072619"); RSA_Algorithm rsa = new RSA_Algorithm(); Parameters parameters = new Parameters() { p = 9601, q = 8731 }; string texto = "Mejor que buscar la verdad sin método es no pensar nunca en ella, porque los estudios desordenados y las meditaciones oscuras turban las luces naturales de la razón y ciegan la inteligencia. -René Descártes"; Console.WriteLine("\nTEXTO ORIGINAL \n" + texto); parameters = rsa.GetKey(parameters); Console.WriteLine("\n-------- RSA -------------------------------------------------------------------------------------------------------"); Console.WriteLine("KEY\nValor n: " + parameters.n + "\nValor D: " + parameters.d + "\nValor E: " + parameters.e); Console.WriteLine("\nTEXTO CIFRADO"); byte[] result_encrypt1 = rsa.Encrypt(parameters, ConvertToByte(texto)); Console.WriteLine(ConvertToChar(result_encrypt1)); Console.WriteLine("\nTEXTO DESCIFRADO"); byte[] result_Decrypt = rsa.Decrypt(parameters, result_encrypt1); Console.WriteLine(ConvertToChar(result_Decrypt)); Console.ReadLine(); }
public void EncryptOrDecryptManage(string path, string file_name, string key_name, string nameOut) { byte[] buffer; string file_path = path + $"\\Data\\Entrada\\{file_name}"; using (FileStream fs = new FileStream(file_path, FileMode.OpenOrCreate)) { buffer = new byte[fs.Length]; using (var br = new BinaryReader(fs)) { br.Read(buffer, 0, buffer.Length); } } Parameters parameters = new Parameters(); string file_path_key = path + $"\\Data\\Entrada\\{key_name}"; string[] nameKey = key_name.Split("."); using (StreamReader keys = new StreamReader(file_path_key)) { parameters.n = int.Parse(keys.ReadLine()); if (nameKey[0] == "private") { parameters.d = int.Parse(keys.ReadLine()); parameters.e = parameters.d; } else if (nameKey[0] == "public") { parameters.e = int.Parse(keys.ReadLine()); parameters.d = parameters.e; } } byte[] result; string extension = file_name.Split(".")[1]; switch (extension) { case "txt": result = new RSA_Algorithm().Encrypt(parameters, buffer); OutFileName = nameOut + ".rsa"; OutFilePath = path + $"\\Data\\Salida\\" + OutFileName; break; case "rsa": result = new RSA_Algorithm().Decrypt(parameters, buffer); OutFileName = nameOut + ".txt"; OutFilePath = path + $"\\Data\\Salida\\" + OutFileName; break; default: throw new Exception(); } using (var fs = new FileStream(OutFilePath, FileMode.OpenOrCreate)) { fs.Write(result, 0, result.Length); } }
public void GeyKeys(string path, string p, string q) { Parameters parameters = new Parameters(); try { if (File.Exists($"{path}/../keys.zip")) { File.Delete($"{path}/../keys.zip"); } if (File.Exists(path + "\\public.key")) { File.Delete(path + "\\public.key"); } if (File.Exists(path + "\\private.key")) { File.Delete(path + "\\private.key"); } parameters.p = int.Parse(p); parameters.q = int.Parse(q); RSA_Algorithm keys = new RSA_Algorithm(); parameters = keys.GetKey(parameters);; FileStream publickeys = new FileStream((path + "\\public.key"), FileMode.Create); publickeys.Close(); FileStream privatekeys = new FileStream((path + "\\private.key"), FileMode.Create); privatekeys.Close(); using (StreamWriter writer = new StreamWriter(path + "\\public.key")) { writer.WriteLine(parameters.n); writer.WriteLine(parameters.e); } using (StreamWriter writer = new StreamWriter(path + "\\private.key")) { writer.WriteLine(parameters.n); writer.WriteLine(parameters.d); } } catch (Exception) { throw; } }