//Realiza la conexión con la BBDD, en caso de fallar muestra un mensaje de error por pantalla //Si se realiza correctamente la inserción se cambia a la ventana principal junto con la de configuración private void connBBDD() { using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Formularios\MiBaseDeDatos.mdf;Integrated Security=True")) { using (SqlCommand cmd = new SqlCommand("Select * From Usuario where id = '" + textBox_usuario.Text.ToLower() + "'", conn)) { conn.Open(); using (SqlDataReader rd = cmd.ExecuteReader()) { if (rd.HasRows) { MessageBox.Show("Error: El usuario ya existe", "Error", MessageBoxButtons.OK); rd.Close(); } else { rd.Close(); //Inicializamos el DataSet que conecta con la tabla usuarios BBDDDataSetTableAdapters.UsuarioTableAdapter usuarioTableAdapter; usuarioTableAdapter = new BBDDDataSetTableAdapters.UsuarioTableAdapter(); String usuario = textBox_usuario.Text.ToLower(); String contraseña = textBox_contraseña.Text; String sal = Cifrado.CrearClaveAleatoria(32); String hash = Cifrado.obtenerHashCifrado(contraseña, sal); //Insertamos el nuevo usuario en la base de datos usuarioTableAdapter.Insert(usuario, hash, null, null, null, null, false, false, false, sal); this.Hide(); Formularios.Principal form = new Formularios.Principal(); Formularios.Configuracion form2 = new Formularios.Configuracion(); form.StartPosition = FormStartPosition.CenterScreen; form2.StartPosition = FormStartPosition.CenterScreen; //Cargamos el usuario en el resto de formularios form._usuario = usuario; form2._usuario = usuario; form._password = hash; form2._principal = form; try { form2.ShowDialog(); form.ShowDialog(); } catch (System.NullReferenceException) { } this.Close(); } } conn.Close(); } } }
//Botón que cifra los archivos seleccionados private void btn_crypt_Click(object sender, EventArgs e) { //Comprueba el método de cifrado que se ha de emplear //En caso de no haberse seleccionado ninguno mostrará un mensaje de aviso String cifrado = ""; if ((string)lista_cifrado.SelectedItem == "AES") { cifrado = ".aes"; } else if ((string)lista_cifrado.SelectedItem == "RC4") { cifrado = ".rc4"; } else { MessageBox.Show("Debe introducir un método de cifrado", "Atención", MessageBoxButtons.OK); return; } String error = ""; foreach (String direccion in rutas) { String fileExtension = System.IO.Path.GetExtension(direccion); String fileName = System.IO.Path.GetFileName(direccion) + cifrado; //Comprobar si el archivo ya existe en la BD if (fileExtension == ".aes" || fileExtension == ".rc4") { error += "El archivo " + fileName + " ya está cifrado\n"; } else if (buscarArchivoBD(fileName) != "") { error += "El archivo " + fileName + " ya ha sido cifrado\n"; } else { String ContAleatoria = Cifrado.CrearClaveAleatoria(16); Byte[] PassMaestra = Cifrado.GenerarClaveByte(_password, 32); String PassArchivo = Cifrado.CifrarPassArchivoAES(ContAleatoria, PassMaestra); if (cifrado == ".aes") { //Generamos las claves necesarias para el cifrado en AES //Se llama a la función que cifra por AES if (Cifrado.CifrarAES(direccion, ContAleatoria)) { InsertarArchivoBD(fileName, PassArchivo); CopiaArchivo(direccion + cifrado, fileName); } } else { //Se llama a la función que cifra por RC4 if (Cifrado.RC4(direccion, direccion + cifrado, ContAleatoria)) { InsertarArchivoBD(fileName, PassArchivo); CopiaArchivo(direccion + cifrado, fileName); } } } } if (error != "") { MessageBox.Show(error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Todos los archivos se han cifrado con éxito", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information); } listaArchivos.Clear(); rutas.Clear(); }