Example #1
0
        //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();
                }
            }
        }
Example #2
0
        //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();
        }