Imagen genérica del Canal Informática y TICS

Seguridad en C#. Encriptar y DesEncriptar datos.

Número de visualizaciones
11/02/2013

En este post deseo dejar un sistema muy simple pero eficiente de encriptación de información usando C#.

Lo interesante de este ejemplo que os dejo es la simplicidad de uso ya que usa directamente funciones de .NET para realizar estas operaciones.

Dejo una clase con los métodos programados que creo os puede venir bien:

/// Esta clase contiene funciones para encriptar/desencriptar
/// El ser estática no es necesario instanciar un objeto para 
/// usar las funciones Encriptar y DesEncriptar

public static class Seguridad
{

/// Encripta una cadena
public static string Encriptar(this string _cadenaAencriptar)
{
string result = string.Empty;
byte[] encryted = System.Text.Encoding.Unicode.GetBytes(_cadenaAencriptar);
result = Convert.ToBase64String(encryted);
return result;
}

/// Esta función desencripta la cadena que le envíamos en el parámentro de entrada.
public static string DesEncriptar(this string _cadenaAdesencriptar)
{
string result = string.Empty;
byte[] decryted = Convert.FromBase64String(_cadenaAdesencriptar);
//result = System.Text.Encoding.Unicode.GetString(decryted, 0, decryted.ToArray().Length);
result = System.Text.Encoding.Unicode.GetString(decryted);
return result;
}
}

En el siguiente código podemos ver cómo usar la clase anterior:

protected void btnInicio_Click(object sender, EventArgs e)
        {     
//encriptamos la cadena inicial       
            txtcadenaencriptada.Text = Seguridad.Encriptar(txtcadenainicial.Text);
//ahora desencriptamos
            txtcadenafinal.Text = Seguridad.DesEncriptar(txtcadenaencriptada.Text);
//Vereis que despues de estas instrucciones txtcadenainial y txtcadenafinal contienen lo mismo.

        }

Como veis es muy sencillo encriptar información, por tanto ya no tenemos excusa para pasar información por la red sin codificar y menos aún guardar información delicada sin poner algún mínimo de seguridad.

1+
Categorizado en: Desarrollo de Aplicaciones

38 Comentarios

  1. Francisco dice:

    Consulta, puedo quitar a un programa C# el codigo de la password encriptada? Explico, dejar el programa sin el codigo de encriptar la contraseña.

    0
  2. Carlos García dice:

    Buenas Tardes, en caso de ofuscar codigo de c# , alguna herramienta o Visual studio cuenta con algo?

    0
  3. ignacio dice:

    tengo una pagina web que al iniciar sesion, pasa por parametros encriptados en la url los datos de usuarios y password. esto lo utilizo para moverme entre distintos modulos sin tener que volver a hacer login. el problema esta en que si se copia esta url y se la habre en cualquier dispositivo, entra al sistema como si estuviese logueado. que solucion posible ves?? muchas gracias

    1+
  4. Josue Mercally dice:

    Https

    1+
    • Víctor Manuel Acosta Víctor Manuel Acosta dice:

      Por supuesto, pero si consiguen desencriptar la comunicación, una capa adicional de seguridad nunca está de más.

      1+
  5. Javier Pintos dice:

    BASE64 no es una método de Encriptación!!! NO USAR!!!

    2+
    • Víctor Manuel Acosta Víctor Manuel Acosta dice:

      No pretende ser un método de encriptación infalible, es una mínima medida de seguridad, que pone las cosas un poco más difíciles a un posible hacker que esté a la escucha. Para mayor seguridad podemos utilizar funciones más específicas como CryptoStream().

      2+
Ver más comentarios
  1. 13/02/2013

    […] Informática y Comunicaciones ← Seguridad en C#. Encriptar y DesEncriptar datos. […]

    0
  2. 02/05/2013

    […] Según la empresa el ataque provocó el acceso no autorizado a datos de clientes, aunque afortunadamente algunos de ellos estaban encriptados, como las contraseñas, los números de cuentas, etc. (ver la importancia de encriptar/codificar cierta información). […]

    0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Descubre MasterClass de INESEM. Una plataforma en la que profesionales enseñan en abierto

Profesionales enseñando en abierto