¿Cómo cifrar datos? neto
Cree un programa en formato Win y luego copie el código en segundo plano para implementar el programa de cifrado asimétrico C#.
Utilizar el sistema;
Utilizar el sistema. Dibujo;
Usa el sistema. Colección;
Usa el sistema. Modelo de componentes;
Utilizar el sistema. Windows Forms
Usa el sistema. Datos;
Utilizar el sistema. Io;
Usa el sistema. Texto;
Usa el sistema. Seguridad. Criptografía;
Cifrado asimétrico del espacio de nombres
{
///& lt; Resumen& gt
///formulario Descripción resumida de 1 .
///</summary>
Clase pública Form1: System. window.form.form
{
Sistema privado. windows .forms control de pestañas control de pestañas 1;
Sistema privado. windows .forms .pestaña página 1;
Sistema privado. windows .forms .pestaña página 2;
Sistema privado. windows .forms botón botón 1;
Sistema privado. Windows .Forms.Botón botón2
Sistema privado. Windows .Forms.Botón botón3
Sistema privado. Guardar Windows.Forms.SaveFileDialog;
Sistema privado. windows .formularios etiqueta etiqueta 1;
Sistema privado. windows .formularios .cuadro de texto cuadro de texto 1;
Sistema privado. Windows .Forms.Botón4
Sistema privado. Windows .Forms.Botón botón5
Sistema privado. Windows .Forms.Label label2
Sistema privado. windows .forms . richtextbox richtext 2;
Sistema privado. Se abre Windows.Forms.OpenFileDialog;
Sistema privado. Windows.Forms.Label etiqueta 3;
Sistema privado. windows .forms .richtextbox richtext 3;
Sistema privado. windows .forms .richtextbox texto enriquecido;
Sistema privado. Windows .Forms.Botón botón6
Sistema privado. Windows .Forms.Botón7
Sistema privado. Windows . Forms.Botón botón8
///<summary>
///Variables de diseñador requeridas.
Cripta RSACryptoServiceProvider estática privada
Clave privada de cadena estática privada
Clave pública de cadena estática privada
Bytes estáticos privados[]bytes;
Cadena estática privada publicinfo
Cadena estática privada privateinfo
Cadena estática privada readpublickey
Cadena estática privada readprivatekey
// ///Bytes estáticos privados[]one bytes;
///& lt;/summary & gt;
Sistema privado. ComponentModel.Container componente = null
Public Form 1()
{
//
// Compatibilidad con Windows Forms Designer necesaria
//
initialize componente();
//
// TODO: agregue cualquier construcción después del código de función de llamada de InitializeComponent.
//
}
///<Summary>
///Limpiar todos los recursos en uso.
///</summary>
Superposición protegida void Dispose(bool disposing)
{
if (proceso)
{
if (componente! = nulo)
{
Componente. disponer();
}
}
Base. Dispose(dispose);
}
#regionCode generado por Windows Forms Designer
///<Summary>
/// El diseñador admite el método requerido; no utilice el editor de código para modificarlo.
///El contenido de este método.
///</summary>
Private void InitializeComponent()
{
this.tabControl1 = nuevo sistema. windows .forms .pestaña control();
this.tabPage1 =Nuevo sistema. windows .forms .pestaña página();
this.button6 =Nuevo sistema. windows.forms.boton();
this.button3 = Nuevo sistema. windows .forms .boton();
this.button2 = Nuevo sistema. windows.forms.boton();
this.richtext=Nuevo sistema. windows.forms.richtextbox();
this.button1 = Nuevo sistema. windows.forms.boton();
this.tabPage2 =Nuevo sistema. windows .forms .pestaña página();
this.button8 = Nuevo sistema. windows.forms.boton();
this.button7 = Nuevo sistema. windows .forms .boton();
this.label3 =Nuevo sistema.
windows.forms.etiqueta();
this.richtext3 = Nuevo sistema. windows.forms.richtextbox();
this.label2 = Nuevo sistema. windows.forms.etiqueta();
this.richtext2 = Nuevo sistema. windows.forms.richtextbox();
this.button5 = Nuevo sistema. windows .forms .boton();
this.button4 = Nuevo sistema. windows.forms.boton();
this.textBox1 =Nuevo sistema. windows.forms.textbox();
this.label1 =Nuevo sistema. windows.forms.etiqueta();
this.save = nuevo sistema. windows.forms. savefiledialog();
this.open = nuevo sistema. formularios de windows.openfile dialog();
this.tabControl1. suspender diseño();
this.tabPage1. suspender diseño();
esta página de pestaña 2 . suspender diseño();
Esto. suspender diseño();
//
// tabControl1
//
this.tabControl1. controles . Add(esta . pestaña página 1);
this.tabControl1. controles . Add(esta . pestaña página 2);
this.tabControl1. ubicación = nuevo sistema. Punto de dibujo (32, 64);
this.tabControl1. nombre = "control de pestaña 1";
this.tabControl1. SelectedIndex = 0;
this.tabControl1. tamaño = nuevo sistema. dibujo.tamaño(416,280);
this.tabControl1. TabIndex = 0;
//
// tabPage1
//
this.tabPage1. controles . Agregar(este . botón 6);
this.tabPage1. controles . Agregar(este . botón 3);
this.tabPage1. controles . Agregar(este . botón 2);
this.tabPage1. controles . Agregar(este texto enriquecido);
this.tabPage1. controles . Agregar(este . botón 1);
this.tabPage1. ubicación = nuevo sistema. dibujo.punto(4,21);
this.tabPage1. nombre = "pestaña página 1";
this.tabPage1. tamaño = nuevo sistema. dibujo. Tamaño(408, 255);
this.tabPage1.
TabIndex = 0;
Esta.tabPage1. Texto = "Obtener clave";
//
//Botón 6
//
this.button6.Location = Nuevo sistema. Drawing.point(72,168);
este botón 6 .
este botón 6. .button6.Text = "Escribir en archivo";
this.button6.Click +=Nuevo sistema. EventHandler(este . botón 6 _ Clic);
//
//Botón 3
//
este.botón3. Ubicación = nuevo sistema. dibujo.point(200,16);
este botón 3 . >This.button3.Text = "Guardar clave privada";
this.button3.Click +=Nuevo sistema. EventHandler(este . botón 3 _ Clic);
//
//Botón 2
//
este.botón2. Ubicación = nuevo sistema. dibujo.point(128,16);
este botón 2 . >This.button2.Text = "Guardar clave pública";
this.button2.Click +=Nuevo sistema. EventHandler(este . botón 2 _ Clic);
//
// richtext
//
this.richtext.Location =Nuevo sistema. plot.point(16, 56);
this.texto enriquecido.nombre = "texto enriquecido"
this.richtext.Size = nuevo sistema. dibujo. tamaño(256, 96);
este texto enriquecido. tabindex = 1;
este texto enriquecido = "cuadro de texto enriquecido 1"; //
// botón1
//
este.botón1. ubicación = nuevo sistema. Punto.de.dibujo(8,16);
este.botón1. nombre = " botón 1 ";
este.botón1. tamaño = nuevo sistema. dibujo. tamaño(88, 23);
este.botón1. TabIndex = 0;
Este.botón1. Text = "Obtener información clave";
this.button1. Haga clic en +=Nuevo sistema.
EventHandler(este . botón 1 _ Clic);
//
// tabPage2
//
esta página de pestaña 2. . controles . add(this . botón 8);
this . pestaña controles . add(this . botón 7);
this . (esta . etiqueta 3);
esta .página de pestaña 2 .add(este .texto enriquecido 3);
esta .página de pestaña 2 . etiqueta 2);
esta página de pestaña 2 . agregar(este . texto enriquecido 2);
esta página de pestaña 2 . ;
esta .página de pestaña 2 .add(este .botón 4);
esta .página de pestaña 2 . >
esta .página de pestaña 2 .add(this .etiqueta 1);
this.tabPage2.Location = nuevo sistema. plot.point(4, 21);
este .tab página 2 . = "pestaña página 2";
this.tabPage2.Size = nuevo sistema. dibujo. Tamaño (408, 255);
esta página de pestaña 2 . tabindex = 1;
This.tabPage2.Text = "Texto cifrado y descifrado"; >//
//Button8
//
this.button8.Location = Nuevo sistema. dibujo.point(216,72);
este botón 8 . >This.button8.Text = "Leer clave privada";
this.button8.Click +=Nuevo sistema. EventHandler(este . botón 8 _ Click);
//
//Botón 7
//
este.botón7. Ubicación = nuevo sistema. Punto de dibujo (56, 72);
este botón 7 . This.button7.Text = "Leer clave pública";
this.button7.Click +=Nuevo sistema. EventHandler(este . botón 7 _ Click);
//
//Etiqueta 3
//
this.label3. Ubicación = nuevo sistema.
plot.point(200, 120);
this.etiqueta 3. nombre = "etiqueta 3";
this.label3.Size = nuevo sistema. Drawing.size(100,16);
this .etiqueta 3 . tabindex = 7;
This.label3.Text = "Resultado del descifrado"; //
// richtext3
//
this.richtext3.Location = Nuevo sistema. plot.point(200, 144);
este .texto enriquecido 3 . nombre = " texto enriquecido 3 ";
este.richtext3.Size = nuevo sistema. dibujo.size(120,72);
este texto enriquecido 3 . tabindex = 6;
este texto enriquecido 3 . >
//
// label2
//
this.label2.Location = Nuevo sistema. dibujo.point(48,120);
this .etiqueta 2 . nombre = "etiqueta 2 ";
this.label2.Size = nuevo sistema. Drawing.size(128,16);
this .etiqueta 2 . tabindex = 5;
This.label2.Text = "Ventana de cifrado:"; >>/
// richtext2
//
this.richtext2.Location = Nuevo sistema. plotpoint(40,144);
this.richtext2.Size = nuevo sistema. dibujo.size(120,72);
este texto enriquecido 2 . tabindex = 4;
este texto enriquecido 2 . >
//
//Botón 5
//
this.button5.Location = Nuevo sistema. draw.point(200,96);
este botón 5 . nombre = " botón 5 ";
this.button5.Size = nuevo sistema. Drawing.size(112,23);
este botón 5 . tabindex = 3
This.button5.Text = "Descifrar con clave privada"; p>este.botón5.Haga clic en +=Nuevo sistema. EventHandler(este . botón 5 _ Clic);
//
//Botón 4
//
este.botón4. Ubicación = nuevo sistema. Plot Point(48, 96);
this.botón 4 .nombre = "botón 4";
this.button4.Size = nuevo sistema. dibujo.
Tamaño (96, 23);
este botón 4. tabindex = 2;
This.button4.Text = "Usar cifrado de clave pública"; this.button4.Haga clic en +=Nuevo sistema. EventHandler(este . botón 4 _ Clic);
//
// textBox1
//
this.textBox1. ubicación = nuevo sistema. dibujo.punto(104,32);
este.textBox1. Multilínea = verdadero
this.textBox1. nombre = " cuadro de texto 1 ";
this.textBox1. tamaño = nuevo sistema. Dibujo.tamaño(168,32);
este.textBox1. TabIndex = 1;
este.textBox1. texto = " cuadro de texto 1 ";
//
// etiqueta1
//
this.label1. ubicación = nuevo sistema. dibujo.punto(128,8);
esta.etiqueta1. nombre = " etiqueta 1 ";
this.label1. tamaño = nuevo sistema. Dibujo.tamaño(120,16);
esta.etiqueta1. TabIndex = 0;
Esta.etiqueta1. Text = "Por favor, introduzca texto cifrado";
//
// Form1
//
Esto. AutoScaleBaseSize = nuevo sistema. Tamaño del dibujo (6, 14);
Este. ClientSize = nuevo sistema. dibujo. Tamaño(504,357);
Esto. controles . Agregar(este . control de pestaña 1);
Esto. nombre = " formulario 1 ";
Este. text = " formulario 1 ";
this.tabControl1. ResumeLayout(false);
this.tabPage1. ResumeLayout(false);
esta página de pestaña 2. diseño del currículum (false);
Esto. ResumeLayout(false);
}
#End area
///<Summary>
///Aplicación La entrada principal punto del programa.
///</summary>
[hilo estático]
tubería principal vacía estática()
{
Aplicar. run(new form 1());
}
//Obtener información clave
Botón de anulación privada1_Click(Remitente del objeto, sistema. EventArgs e) p>
{
cripta = new RSACryptoServiceProvider();
Clave pública = cripta. ToXmlString(false);
RichtextText= "Si clave de exportación:\n "+clave pública+" \n";
claveprivada=cripta.
ToXmlString(true);
String info= "Solo al exportar la clave pública:\ n "+clave privada+" \ n ";
texto enriquecido. AppendText(info);
Cripta. clear();
}
//Guardar la información de la clave pública
Botón de anulación privada2_Click (remitente del objeto, sistema. EventArgs e)
{
guardar = new SaveFileDialog();
Guardar. Filter= "Texto del archivo(*.txt)|*.txt|Todos los archivos(*.*)|*.*";
Guardar. ShowDialog();
publicinfo = guardar. Nombre de archivo;
}
//Guardar información clave
Botón de anulación privada3_Click(Remitente del objeto, sistema. EventArgs e)
{
guardar = new SaveFileDialog();
Guardar. Filter= "Texto del archivo(*.txt)|*.txt|Todos los archivos(*.*)|*.*";
Guardar. ShowDialog();
información privada = guardar. Nombre del archivo;
}
//Escribe la información clave en el archivo
Botón de anulación privada6_Click(Remitente del objeto, sistema. EventArgs e)
{
StreamWriter uno = nuevo StreamWriter(información pública, verdadero, UTF8Encoding. UTF8);
Uno. escribir(clave pública);
StreamWriter dos = nuevo StreamWriter(información privada, verdadero, UTF8Encoding. UTF8);
Dos. escribir(clave privada);
A. flush();
Dos. rubor();
A. close();
Dos. close();
Cuadro de mensaje. Show("¡Clave pública y clave secreta guardadas correctamente!");
}
//Cifrar con clave pública
Botón de anulación privada4_Click(remitente del objeto, Sistema .EventArgs e)
{
crypt = new RSACryptoServiceProvider();
ut codificación F8 enc = nueva codificación ut F8();
bytes=enc. GetBytes(textBox1.Text);
Cripta. de cadena XML (leer clave pública);
bytes = crypt. cifrar(bytes, falso);
cadena encryttext=enc. GetString(byte); //cifrar byte);
Richtext2. Text= "Resultado del cifrado:\ n"+encrytext+"\ n"+"¡Cifrado finalizado!";
}
Botón de anulación privada5_Haga clic (remitente del objeto, sistema.
EventArgs e)
{
ut codificación F8 enc = nueva codificación ut F8();
byte [] byte descifrado;
Cripta. de cadena XML (readprivatekey);
decryptbyte = crypt. descifrar(bytes, falso);
cadena decrypttext=enc. GetString(descifrar byte);
Richtext3. Text = "Resultado del descifrado:\n"+decrypttext+"\n"+"¡Descifrado completado!";
}
//Leer la información de la clave pública del archivo
Botón de anulación privada7_Click(Remitente del objeto, sistema. EventArgs e)
{
StreamReader sr
open = nuevo diálogo de archivo abierto();
Abrir. Filter= "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.* ";
//Abrir. ShowDialog();
if (open. ShowDialog() == DialogResult. OK)
{
sr = new StreamReader(open. nombre de archivo, codificación utf8 utf8);
}
Otro
{
Cuadro de mensajes. display("¡Ocurrió un error!");
Return;
}
leer clave pública = Sr. ReadToEnd();
Sr. Close();
}
//Leer información de clave privada del archivo
Botón de anulación privada8_Click(Remitente del objeto, sistema. EventArgs e )
{
abrir = nuevo diálogo de archivo abierto();
Abrir. Filter= "Archivos de texto (*.txt)|*.txt |Todos los archivos (*.*)|*.* ";
Abrir. ShowDialog();
StreamReader sr = nuevo StreamReader (open. nombre de archivo, codificación utf8. UTF8
readprivatekey = Sr . . Cerrar();
}
}
}
.