From 72ce0f41f7d26698640586d18702cd79b441dcc1 Mon Sep 17 00:00:00 2001 From: juanjo Date: Fri, 27 Oct 2023 12:22:39 +0200 Subject: [PATCH] =?UTF-8?q?C=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/Seguridad/v16/.suo | Bin 0 -> 23552 bytes 01-Seguridad/01-Seguridad.csproj | 84 ++++++ 01-Seguridad/App.config | 6 + 01-Seguridad/CodeFile1.cs | 49 ++++ 01-Seguridad/Form1.Designer.cs | 256 ++++++++++++++++++ 01-Seguridad/Form1.cs | 207 ++++++++++++++ 01-Seguridad/Form1.resx | 123 +++++++++ 01-Seguridad/Program.cs | 19 ++ 01-Seguridad/Properties/AssemblyInfo.cs | 36 +++ 01-Seguridad/Properties/Resources.Designer.cs | 66 +++++ 01-Seguridad/Properties/Resources.resx | 117 ++++++++ 01-Seguridad/Properties/Settings.Designer.cs | 27 ++ 01-Seguridad/Properties/Settings.settings | 7 + 01-Seguridad/bin/Debug/encriptaDES.txt | 1 + 01-Seguridad/bin/Debug/privateKey.xml | 1 + 01-Seguridad/bin/Debug/publicKey.xml | 1 + ...ework,Version=v4.7.2.AssemblyAttributes.cs | 4 + ...1-Seguridad.csproj.AssemblyReference.cache | Bin 0 -> 6035 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7246 bytes Seguridad.sln | 25 ++ 20 files changed, 1029 insertions(+) create mode 100644 .vs/Seguridad/v16/.suo create mode 100644 01-Seguridad/01-Seguridad.csproj create mode 100644 01-Seguridad/App.config create mode 100644 01-Seguridad/CodeFile1.cs create mode 100644 01-Seguridad/Form1.Designer.cs create mode 100644 01-Seguridad/Form1.cs create mode 100644 01-Seguridad/Form1.resx create mode 100644 01-Seguridad/Program.cs create mode 100644 01-Seguridad/Properties/AssemblyInfo.cs create mode 100644 01-Seguridad/Properties/Resources.Designer.cs create mode 100644 01-Seguridad/Properties/Resources.resx create mode 100644 01-Seguridad/Properties/Settings.Designer.cs create mode 100644 01-Seguridad/Properties/Settings.settings create mode 100644 01-Seguridad/bin/Debug/encriptaDES.txt create mode 100644 01-Seguridad/bin/Debug/privateKey.xml create mode 100644 01-Seguridad/bin/Debug/publicKey.xml create mode 100644 01-Seguridad/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs create mode 100644 01-Seguridad/obj/Debug/01-Seguridad.csproj.AssemblyReference.cache create mode 100644 01-Seguridad/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 Seguridad.sln diff --git a/.vs/Seguridad/v16/.suo b/.vs/Seguridad/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..07889b7cf7e46f5287eab0414ce7b92ee0e862ee GIT binary patch literal 23552 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 KGvdA2Km32Tl8Ukb literal 0 HcmV?d00001 diff --git a/01-Seguridad/01-Seguridad.csproj b/01-Seguridad/01-Seguridad.csproj new file mode 100644 index 0000000..fa7e931 --- /dev/null +++ b/01-Seguridad/01-Seguridad.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {D9710F8B-8C29-48AE-B72D-A1365F2F85F8} + WinExe + _01_Seguridad + 01-Seguridad + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/01-Seguridad/App.config b/01-Seguridad/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/01-Seguridad/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/01-Seguridad/CodeFile1.cs b/01-Seguridad/CodeFile1.cs new file mode 100644 index 0000000..a38bce2 --- /dev/null +++ b/01-Seguridad/CodeFile1.cs @@ -0,0 +1,49 @@ +private void button5_Click(object sender, EventArgs e) { + string mensaje = this.textBox4.Text; + string publicKeyFile = "publicKey.xml"; + string privateKeyFile = "privateKey.xml"; + generarClaves(publicKeyFile, privateKeyFile); + + byte[] Encriptado = encriptar(publicKeyFile, Encoding.UTF8.GetBytes(mensaje)); + byte[] Desencriptado = Desencriptar(privateKeyFile, Encriptado); + + this.label7.Text = BitConverter.ToString(Encriptado); + this.label8.Text = Encoding.UTF8.GetString(Desencriptado); +} + +private static void generarClaves(string publicKF, string privateKF) { + using (var rsa = new RSACryptoServiceProvider(2048)) { + rsa.PersistKeyInCsp = false; + + if (File.Exists(publicKF)) + File.Delete(publicKF); + if (File.Exists(privateKF)) + File.Delete(privateKF); + + string publicKey = rsa.ToXmlString(false); + File.WriteAllText(publicKF, publicKey); + string privateKey = rsa.ToXmlString(true); + File.WriteAllText(privateKF, privateKey); + } +} + +public static byte[] encriptar(string publicKF, byte[] textoPlano) { + byte[] encriptado; + using (var rsa = new RSACryptoServiceProvider(2048)) { + rsa.PersistKeyInCsp = false; + string publicKey = File.ReadAllText(publicKF); + rsa.FromXmlString(publicKey); + encriptado = rsa.Encrypt(textoPlano, true); + } + return (encriptado); +} +public static byte[] Desencriptar(string privateKF, byte[] textoEncriptado) { + byte[] Desencriptado; + using (var rsa = new RSACryptoServiceProvider(2048)) { + rsa.PersistKeyInCsp = false; + string privateKey = File.ReadAllText(privateKF); + rsa.FromXmlString(privateKey); + Desencriptado = rsa.Decrypt(textoEncriptado, true); + } + return (Desencriptado); +} \ No newline at end of file diff --git a/01-Seguridad/Form1.Designer.cs b/01-Seguridad/Form1.Designer.cs new file mode 100644 index 0000000..d5e2fb6 --- /dev/null +++ b/01-Seguridad/Form1.Designer.cs @@ -0,0 +1,256 @@ + +namespace _01_Seguridad { + partial class Form1 { + /// + /// Variable del diseñador necesaria. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Limpiar los recursos que se estén usando. + /// + /// true si los recursos administrados se deben desechar; false en caso contrario. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Código generado por el Diseñador de Windows Forms + + /// + /// Método necesario para admitir el Diseñador. No se puede modificar + /// el contenido de este método con el editor de código. + /// + private void InitializeComponent() { + this.button1 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.button2 = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button3 = new System.Windows.Forms.Button(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.button4 = new System.Windows.Forms.Button(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.button5 = new System.Windows.Forms.Button(); + this.label7 = new System.Windows.Forms.Label(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(34, 23); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(109, 37); + this.button1.TabIndex = 0; + this.button1.Text = "MD5"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(175, 35); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(70, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Valor HASH: "; + // + // openFileDialog1 + // + this.openFileDialog1.FileName = "openFileDialog1"; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(34, 66); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(109, 37); + this.button2.TabIndex = 2; + this.button2.Text = "Cifrado Casero"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(290, 78); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(75, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Texto cifrado: "; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(149, 75); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(135, 20); + this.textBox1.TabIndex = 4; + this.textBox1.Text = "hola cifrado casero"; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(34, 109); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(109, 37); + this.button3.TabIndex = 5; + this.button3.Text = "DES a fichero"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(149, 118); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(135, 20); + this.textBox2.TabIndex = 7; + this.textBox2.Text = "Texto a cifrar con DES"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(290, 118); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(75, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Texto cifrado: "; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(290, 133); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(92, 13); + this.label4.TabIndex = 8; + this.label4.Text = "Texto descifrado: "; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(34, 152); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(109, 37); + this.button4.TabIndex = 9; + this.button4.Text = "AES"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(149, 161); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(135, 20); + this.textBox3.TabIndex = 11; + this.textBox3.Text = "Texto a cifrar con AES"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(290, 161); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(75, 13); + this.label5.TabIndex = 12; + this.label5.Text = "Texto cifrado: "; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(290, 176); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(92, 13); + this.label6.TabIndex = 13; + this.label6.Text = "Texto descifrado: "; + // + // button5 + // + this.button5.Location = new System.Drawing.Point(34, 195); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(109, 37); + this.button5.TabIndex = 14; + this.button5.Text = "RSA"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(290, 204); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(75, 13); + this.label7.TabIndex = 16; + this.label7.Text = "Texto cifrado: "; + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(149, 204); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(135, 20); + this.textBox4.TabIndex = 15; + this.textBox4.Text = "Texto a cifrar con RSA"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(290, 219); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(92, 13); + this.label8.TabIndex = 17; + this.label8.Text = "Texto descifrado: "; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.button5); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.button4); + this.Controls.Add(this.label4); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.label3); + this.Controls.Add(this.button3); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label2); + this.Controls.Add(this.button2); + this.Controls.Add(this.label1); + this.Controls.Add(this.button1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.Label label8; + } +} + diff --git a/01-Seguridad/Form1.cs b/01-Seguridad/Form1.cs new file mode 100644 index 0000000..aa714aa --- /dev/null +++ b/01-Seguridad/Form1.cs @@ -0,0 +1,207 @@ +using System; +using System.IO; +using System.Security.Cryptography; +using System.Windows.Forms; +using System.Text; + +namespace _01_Seguridad { + public partial class Form1 : Form { + public Form1() { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) { + String nombreFichero; + + if (openFileDialog1.ShowDialog() == DialogResult.OK) { + nombreFichero = openFileDialog1.FileName; + MD5 md5 = MD5.Create(); + FileStream stream = File.OpenRead(nombreFichero); + byte[] hash = md5.ComputeHash(stream); + + this.label1.Text += BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); + } + } + + private void button2_Click(object sender, EventArgs e) { + String alfabeto = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789 "; + String alfabetoCifrado = "KLMNÑOPQRSTUVWXYZ0123456789 ABCDEFGHIJ"; + + String mensaje, mensajeCifrado = ""; + mensaje = this.textBox1.Text; + for (int i = 0; i < mensaje.Length; i++) { + mensajeCifrado += alfabetoCifrado.Substring(alfabeto.IndexOf(mensaje.Substring(i, 1).ToUpper()), 1); + } + this.label2.Text += mensajeCifrado; + } + + private void button3_Click(object sender, EventArgs e) { + try { + //al crear un objeto DES se genera la key y el vector IV + DES objDES = DES.Create(); + + string textoMensaje = this.textBox2.Text; + string textoCifrado, textoDescifrado; + string fichero = "encriptaDES.txt"; + + textoCifrado = EncryptTextToFile(textoMensaje, fichero, objDES.Key, objDES.IV); + textoDescifrado = DecryptTextFromFile(fichero, objDES.Key, objDES.IV); + + this.label3.Text = textoCifrado; + this.label4.Text = textoDescifrado; + } + catch (Exception exc) { + Console.WriteLine(exc.Message); + } + } + public static string EncryptTextToFile(String Data, String FileName, byte[] Key, byte[] IV) { + try { + FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate); + DES DESalg = DES.Create(); + CryptoStream cStream = new CryptoStream(fStream, + DESalg.CreateEncryptor(Key, IV), + CryptoStreamMode.Write); + StreamWriter sWriter = new StreamWriter(cStream); + sWriter.WriteLine(Data); + sWriter.Close(); + cStream.Close(); + //fStream.Close(); + fStream = File.Open(FileName, FileMode.Open); + StreamReader sr = new StreamReader(fStream); + string cifrado = sr.ReadToEnd(); + fStream.Close(); + return (cifrado); + } + catch (CryptographicException e) { + Console.WriteLine("Error criptográfico: {0}", e.Message); + return null; + } + catch (UnauthorizedAccessException e) { + Console.WriteLine("Error acceso a ficheros: {0}", e.Message); + return null; + } + } + + public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] IV) { + try { + FileStream fStream = File.Open(FileName, FileMode.Open);// .OpenOrCreate); + DES DESalg = DES.Create(); + CryptoStream cStream = new CryptoStream(fStream, + DESalg.CreateDecryptor(Key, IV), + CryptoStreamMode.Read); + StreamReader sReader = new StreamReader(cStream); + string descifrado = sReader.ReadToEnd(); + sReader.Close(); + cStream.Close(); + fStream.Close(); + return descifrado; + } + catch (CryptographicException e) { + Console.WriteLine("Error criptográfico: {0}", e.Message); + return null; + } + catch (UnauthorizedAccessException e) { + Console.WriteLine("Error acceso a ficheros: {0}", e.Message); + return null; + } + } + + + private void button4_Click(object sender, EventArgs e) { + string original = this.textBox3.Text; + + //al crear un objeto AES se genera la key y el vector IV + using (Aes myAes = Aes.Create()) { + byte[] textoEncriptado = EncryptStringToBytes_Aes(original, myAes.Key, myAes.IV); + string textoDesencriptado = DecryptStringFromBytes_Aes(textoEncriptado, myAes.Key, myAes.IV); + + this.label5.Text = BitConverter.ToString(textoEncriptado); + this.label6.Text = textoDesencriptado; + } + } + static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV) { + byte[] encrypted; + using (Aes aesAlg = Aes.Create()) { + aesAlg.Key = Key; + aesAlg.IV = IV; + ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); + using (MemoryStream msEncrypt = new MemoryStream()) { + using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { + using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) { + swEncrypt.Write(plainText); + } + encrypted = msEncrypt.ToArray(); + } + } + } + return encrypted; + } + static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV) { + string plaintext = null; + using (Aes aesAlg = Aes.Create()) { + aesAlg.Key = Key; + aesAlg.IV = IV; + ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); + using (MemoryStream msDecrypt = new MemoryStream(cipherText)) { + using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { + using (StreamReader srDecrypt = new StreamReader(csDecrypt)) { + plaintext = srDecrypt.ReadToEnd(); + } + } + } + } + return plaintext; + } + + private void button5_Click(object sender, EventArgs e) { + string mensaje = this.textBox4.Text; + string publicKeyFile = "publicKey.xml"; + string privateKeyFile = "privateKey.xml"; + generarClaves(publicKeyFile, privateKeyFile); + + byte[] Encriptado = encriptar(publicKeyFile, Encoding.UTF8.GetBytes(mensaje)); + byte[] Desencriptado = Desencriptar(privateKeyFile, Encriptado); + + this.label7.Text = BitConverter.ToString(Encriptado); + this.label8.Text =Encoding.UTF8.GetString(Desencriptado); + } + + private static void generarClaves(string publicKF, string privateKF) { + using (var rsa = new RSACryptoServiceProvider(2048)) { + rsa.PersistKeyInCsp = false; + + if (File.Exists(publicKF)) + File.Delete(publicKF); + if (File.Exists(privateKF)) + File.Delete(privateKF); + + string publicKey = rsa.ToXmlString(false); + File.WriteAllText(publicKF, publicKey); + string privateKey = rsa.ToXmlString(true); + File.WriteAllText(privateKF, privateKey); + } + } + + public static byte[] encriptar(string publicKF, byte[] textoPlano) { + byte[] encriptado; + using (var rsa = new RSACryptoServiceProvider(2048)) { + rsa.PersistKeyInCsp = false; + string publicKey = File.ReadAllText(publicKF); + rsa.FromXmlString(publicKey); + encriptado = rsa.Encrypt(textoPlano, true); + } + return (encriptado); + } + public static byte[] Desencriptar(string privateKF, byte[] textoEncriptado) { + byte[] Desencriptado; + using (var rsa = new RSACryptoServiceProvider(2048)) { + rsa.PersistKeyInCsp = false; + string privateKey = File.ReadAllText(privateKF); + rsa.FromXmlString(privateKey); + Desencriptado = rsa.Decrypt(textoEncriptado, true); + } + return (Desencriptado); + } + } +} + diff --git a/01-Seguridad/Form1.resx b/01-Seguridad/Form1.resx new file mode 100644 index 0000000..9bad2f5 --- /dev/null +++ b/01-Seguridad/Form1.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/01-Seguridad/Program.cs b/01-Seguridad/Program.cs new file mode 100644 index 0000000..8633c8c --- /dev/null +++ b/01-Seguridad/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace _01_Seguridad { + static class Program { + /// + /// Punto de entrada principal para la aplicación. + /// + [STAThread] + static void Main() { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/01-Seguridad/Properties/AssemblyInfo.cs b/01-Seguridad/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fcc92a0 --- /dev/null +++ b/01-Seguridad/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// La información general de un ensamblado se controla mediante el siguiente +// conjunto de atributos. Cambie estos valores de atributo para modificar la información +// asociada con un ensamblado. +[assembly: AssemblyTitle("01-Seguridad")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("01-Seguridad")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Si establece ComVisible en false, los tipos de este ensamblado no estarán visibles +// para los componentes COM. Si es necesario obtener acceso a un tipo en este ensamblado desde +// COM, establezca el atributo ComVisible en true en este tipo. +[assembly: ComVisible(false)] + +// El siguiente GUID sirve como id. de typelib si este proyecto se expone a COM. +[assembly: Guid("d9710f8b-8c29-48ae-b72d-a1365f2f85f8")] + +// La información de versión de un ensamblado consta de los cuatro valores siguientes: +// +// Versión principal +// Versión secundaria +// Número de compilación +// Revisión +// +// Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión +// utilizando el carácter "*", como se muestra a continuación: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/01-Seguridad/Properties/Resources.Designer.cs b/01-Seguridad/Properties/Resources.Designer.cs new file mode 100644 index 0000000..ecfa789 --- /dev/null +++ b/01-Seguridad/Properties/Resources.Designer.cs @@ -0,0 +1,66 @@ +//------------------------------------------------------------------------------ +// +// Este código fue generado por una herramienta. +// Versión de runtime: 4.0.30319.42000 +// +// Los cambios de este archivo pueden provocar un comportamiento inesperado y se perderán si +// el código se vuelve a generar. +// +//------------------------------------------------------------------------------ + + +namespace _01_Seguridad.Properties { + /// + /// Clase de recurso fuertemente tipado para buscar cadenas traducidas, etc. + /// + // StronglyTypedResourceBuilder generó automáticamente esta clase + // a través de una herramienta como ResGen o Visual Studio. + // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen + // con la opción /str o recompile su proyecto de VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Devuelve la instancia ResourceManager almacenada en caché utilizada por esta clase. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_01_Seguridad.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Invalida la propiedad CurrentUICulture del subproceso actual para todas las + /// búsquedas de recursos usando esta clase de recursos fuertemente tipados. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/01-Seguridad/Properties/Resources.resx b/01-Seguridad/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/01-Seguridad/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/01-Seguridad/Properties/Settings.Designer.cs b/01-Seguridad/Properties/Settings.Designer.cs new file mode 100644 index 0000000..9078c59 --- /dev/null +++ b/01-Seguridad/Properties/Settings.Designer.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace _01_Seguridad.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/01-Seguridad/Properties/Settings.settings b/01-Seguridad/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/01-Seguridad/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/01-Seguridad/bin/Debug/encriptaDES.txt b/01-Seguridad/bin/Debug/encriptaDES.txt new file mode 100644 index 0000000..f8ed8c5 --- /dev/null +++ b/01-Seguridad/bin/Debug/encriptaDES.txt @@ -0,0 +1 @@ +TE@OM;w(.~2kU rzH1xagPmxscjlHoIJNGcT0hh0GJE3ymoDwHqbQN8SfhNuEVMNg1p48XoezoFxI9jZLt0FjcvKBZfRr38jK4RFAEPijrO4glDwUFEfhjtuhGh0yqZc9qOyyJYk7FcK3JoeAZuGhbTLdkwhPhmJx4KURnpr1FnkYiYD8qOvg4lsHSV7nQLNmriOcAeXqOqTzvnV7xf8eV1MOsfJNJLccm3kHcOUp+3+ONY3pY9dozEo54ZOi3EY2a2xEIJyeIShWX/oQWXzbKjMdIlJ6KNFxBlAvvVVSuW73JyNlGkpXnJZRQmByQSXIimGbp8rZssMOCcd0jy9XFPaLiQgTKmhoF1RQ==AQAB

7WcqbzADwHaaq5vZak5EEm0eRZl/Ln5/X4zPKJzqJ8Gbxwrt/wwwQeUjXK0scTzcXrlyNwjQTr6N2a7vQe6sYax9DyESu8+oq2ajegYsxq/LBjwgHKvw2y4GGkqoauZOSM6zCbcfXQ3pdaZPPuqw+UIwk0pOfdF481yB8bKC7PM=

3II/JTseFUN0Z4GXXalOZovJYmuegWX+B4h4exqJRGfbws52pwciRuZUM7kcVPRvMhFlrl/ekZDFn1Y9EG7tOIaQQe1e26WmIITkO8n0E0rcxzvvm0/E09CS6DztFo2WRgpnZ+vzjhD1VFElNLi5Ybbyl1wVL7FgCNqFqC9dQuc=cO+4HybfUgraL7M3bbwH5CAm24NXHn4tB/6Lek2TkxAmlDzd1Ywt1Ns1xFvZnZEPYLyl2gqGVj+OabUvutTZCqos4Cqip9f07H0qXd1cJbTxR2kI+brOHOa7HnzPu/MN4NL8Fy4XbIQ2wLI6Vrr9L8bOJvOdfXtOJ6+lXZ7HbAM=kQJuODOqUt1rPW4xdnySfElNBBY1xG6oIZgTcxE+V+fc0z0nNiww1GM/2EvRX+TnAwwBzCxrl1qXO3Ng8N+hzNxhHZnWGafTmesKlG74vX8rtTGrHn3UuF6fXW5Dk+NEgYbx/ZtjLXflfa9nQkaAUswWuIbrv9Nrjib2YmXTdN0=X2HUm8Oqro31pSII33day8jXMzyXGs4fDO8ejVNXfwQe6vLu8WHZiKJj9S/o/QhK0in+j3K76/OpDWkAeW0dOKhge42yETr9jyBJXcfHpjsb0pLFEfvWy1ZxK3BlFZoZWrjWMFqe8MOkGIHponsW1s+ExDc4Fnk6BXvX3Sk5mnI=ePSWWjwWjGuMWy3XlVe7GpZY7TbDQDFWrBHZBURzhxltd1reGnbStJ0Cx6jpcnvSMepDX0SjCxY4oxKLyPbJOUjrVTs11jPetPgTOHcsXsxBKTPgcsvLfNJDDJFzUGuq6Zv8Ekh//3WhonV/jxHQzmoCdOY02buvHmAVEMwzdOxiS3UGEXaTAxDI9HbRtUKN+1/drxv3Ux7vKZo9XhXfIfxv8nmDO4Pt3/FcMuvVHPA+rYRgkXKeUqouTXyoPaJEOMkLp+MkuwwCg2/o+JeGaJWz1RDATvHPky0OD5pRB5O728psHGdMA0hirCW5MkvJr4FPu5r3sY4PG9Pc9aBC/Q== \ No newline at end of file diff --git a/01-Seguridad/bin/Debug/publicKey.xml b/01-Seguridad/bin/Debug/publicKey.xml new file mode 100644 index 0000000..41e2e45 --- /dev/null +++ b/01-Seguridad/bin/Debug/publicKey.xml @@ -0,0 +1 @@ +zH1xagPmxscjlHoIJNGcT0hh0GJE3ymoDwHqbQN8SfhNuEVMNg1p48XoezoFxI9jZLt0FjcvKBZfRr38jK4RFAEPijrO4glDwUFEfhjtuhGh0yqZc9qOyyJYk7FcK3JoeAZuGhbTLdkwhPhmJx4KURnpr1FnkYiYD8qOvg4lsHSV7nQLNmriOcAeXqOqTzvnV7xf8eV1MOsfJNJLccm3kHcOUp+3+ONY3pY9dozEo54ZOi3EY2a2xEIJyeIShWX/oQWXzbKjMdIlJ6KNFxBlAvvVVSuW73JyNlGkpXnJZRQmByQSXIimGbp8rZssMOCcd0jy9XFPaLiQgTKmhoF1RQ==AQAB \ No newline at end of file diff --git a/01-Seguridad/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/01-Seguridad/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/01-Seguridad/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/01-Seguridad/obj/Debug/01-Seguridad.csproj.AssemblyReference.cache b/01-Seguridad/obj/Debug/01-Seguridad.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..c0b74cf531473dd073e94a090b103ea0c6b89c09 GIT binary patch literal 6035 zcmeHL&2G~`5cY__k`_<_Aywj#BS^3+wBn~1RMJ!&XoczuI9RH-&L-K`UZ=a8w&|s3 z&O8Bczzy*ry>sI=*mb=D*S=UDBM#&cW$kEocE0bM*_n;kTYd*%&htE=ot5C7Oa_w1 z?R6e8)qZgN;@QJsi}jggB4q7VrC7Whai)R|9?C=|eI2Zu|Ffe+?gwPEyZw80xJ;gt zr$Ma3L`Hm<^r8sB?Bo6X^8NAWvl%a4z!mdkP9!qsJwb_xMzeMy`r#kHd-iwwC(++e zU${m323lsXMY6QG^yH-nJB=K}pD4}Zl0#gwp#zw4=Y-4lj3pm9%^s%b_F%>=znui{ z7nXl~O5YeOce8CeiRkmeSW?XsQOV-hS39TkXRQ@yv6Wf;7)O=tF%*+LK!Kj5=L0Pp)tb6%5GdERydS!&U6xF;CLgzO-lml_(Lj3O=E?j zI;0Q-+{{F_HW4)DVI}V5b9PZ@y++`24qKfSYx8wXRbe27m8q)Vt16*& zF}>c(3~r8Nld{8l#_%ry_cHffUFpzp$i<-2k@Eyat0({qnR8vCnH)*3m??XQJY?0P znD?(JpuI)~#70pviJ8zPGP;H-BgZtKg=5L}q!xx)dcx2)S{8Ql`M^alIZ|ZZv=Y^* zbWz>Yye{ccJ=qj#IcSuY=MI-}618K&fZw5p)%6r3-DtP6$uxPRb=iIAp9?jT(uxs| zo8)p%&Lxa)VP;u8#RL4$*p?~hlb*jd@wl-Xn)`#|yF98}Bj>a0$=bBU*DAS>E?mWO zEq+?7s5bW?Mf`-0YV4GTJU0^yn^dQr))X5E)V3U>%G`Ef+J?tJi0Vzm@Mm>J)Ee#k d>`y{THofFh~FZ literal 0 HcmV?d00001 diff --git a/01-Seguridad/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/01-Seguridad/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..ca030b9de1bb4f1fb88d39be90e43a5c6d681e20 GIT binary patch literal 7246 zcmeHM=~5d<5SBQ`2#kXW!5DnViIdog*ht*CiXVVbtO~{|Nye!{Dm>a9iGkf6Wo8yo zD4r!xkjf(_-K&esB;{zU_@Py)HJYQp>E52z*R4=E6bk(f7k=V(zYm16m!aUed|;+7k8ybVfLnQE4-TKHk&l5YjKNe)|!dEYNq1Zc3M)0od|i<8Y<8- zj7?k`OAFfqd!J%wfyye=?PYndteD;bCF%vQx{R;7Hd9deJjhagpvJ0KI!0&CrF@py;AAE}%?a8G0*Re#GSSo4Zq7)ofZvz^eic6bUsswr5T0;Jvpy#G_HLO1Ct{b{9?McLKhCwM z=C$N*H6C-6DWuKIoin!ZpO4t`GF>zmmy)aV3oNm+T8iJck2|{6ApB73u3PW8x^TD` zqCrGa`!ofi{Eo*|mk&@cK!b>(UVwJ%hqDw$9vtZhF&r7d<{%271EI)05b!aCB7$NV z#R!ODavx-fjDkp=<(katbsmWH36-qaCc8yrXRFZWkn!UMW7(LCw2PlLw&b zbn|uby#oGOv^}nhDW;CJs1>&}8@YG0*?hKW3X4}otl}{s%f&padJ@>KRZJvjJ6}Zk z5SEs`Dk=aHS^%PyV@lY^ZC2c2MTSYu0~YxLjTr;+`0{>R(!uMsRs+cpR7s+5%=A``CU$Y_ew)Uk?-ND*SeyZQ(!5ayae$+kVkwJQx+fN z6*LCYP{s~p`r_v_7dI2eeCAqj6cZf0qL}31e#ws@rp`8RtgD}sIE;>;z2UCLN-CCE zGjMp$$t?6wpA~K{8rRQ>0ps1tn|=aKqh~pKf`l8(%I72jUGKoX|38%~bGMmFMKMFd zOpzo(1atGq9H=e@5*KM|QVWufsGorW%soFCFjDa9|FidO`?o)}de64@pADsve*mgZ BY$*T$ literal 0 HcmV?d00001 diff --git a/Seguridad.sln b/Seguridad.sln new file mode 100644 index 0000000..55b35dd --- /dev/null +++ b/Seguridad.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31410.357 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01-Seguridad", "01-Seguridad\01-Seguridad.csproj", "{D9710F8B-8C29-48AE-B72D-A1365F2F85F8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9710F8B-8C29-48AE-B72D-A1365F2F85F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9710F8B-8C29-48AE-B72D-A1365F2F85F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9710F8B-8C29-48AE-B72D-A1365F2F85F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9710F8B-8C29-48AE-B72D-A1365F2F85F8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7BAFB6F9-0F53-48AD-AE96-DD2845C1EB4A} + EndGlobalSection +EndGlobal