C#

Buenas tardes estimados lectores, en esta ocasión les traigo un par de funciones que les serán de gran utilidad para proteger el contenido que guardamos en una base de datos o un archivo en forma de texto plano.

Primero que nada debemos agregar a nuestra clase o formulario la siguiente librería:

using System.Security.Cryptography; // Libreria de cifrado.

Ahora crearemos nuestra llave de cifrado:

public string clave = "cadenadecifrado"; // Clave de cifrado. NOTA: Puede ser cualquier combinación de carácteres.
Después programaremos la función que nos servirá para cifrar nuestros textos:

// Función para cifrar una cadena.
        public string cifrar(string cadena) {
            byte[] llave; //Arreglo donde guardaremos la llave para el cifrado 3DES.
            byte[] arreglo = UTF8Encoding.UTF8.GetBytes(cadena); //Arreglo donde guardaremos la cadena descifrada.
            // Ciframos utilizando el Algoritmo MD5.
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            llave = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(clave));
            md5.Clear();
            //Ciframos utilizando el Algoritmo 3DES.
            TripleDESCryptoServiceProvider tripledes = new TripleDESCryptoServiceProvider();
            tripledes.Key = llave;
            tripledes.Mode = CipherMode.ECB;
            tripledes.Padding = PaddingMode.PKCS7;
            ICryptoTransform convertir = tripledes.CreateEncryptor(); // Iniciamos la conversión de la cadena
            byte[] resultado = convertir.TransformFinalBlock(arreglo, 0, arreglo.Length); //Arreglo de bytes donde guardaremos la cadena cifrada.
            tripledes.Clear();
            return Convert.ToBase64String(resultado, 0, resultado.Length); // Convertimos la cadena y la regresamos.
        }

Luego agregamos la función de descifrado:

// Función para descifrar una cadena.
        public string descifrar(string cadena) {
            byte[] llave;
            byte[] arreglo = Convert.FromBase64String(cadena); // Arreglo donde guardaremos la cadena descovertida.
            // Ciframos utilizando el Algoritmo MD5.
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            llave = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(clave));
            md5.Clear();
            //Ciframos utilizando el Algoritmo 3DES.
            TripleDESCryptoServiceProvider tripledes = new TripleDESCryptoServiceProvider();
            tripledes.Key = llave;
            tripledes.Mode = CipherMode.ECB;
            tripledes.Padding = PaddingMode.PKCS7;
            ICryptoTransform convertir = tripledes.CreateDecryptor();
            byte[] resultado = convertir.TransformFinalBlock(arreglo, 0, arreglo.Length);
            tripledes.Clear();
            string cadena_descifrada = UTF8Encoding.UTF8.GetString(resultado); // Obtenemos la cadena
            return cadena_descifrada; // Devolvemos la cadena
        }

Por último lo único que necesitamos hacer es cifrar o descifrar nuestras cadenas según sea el caso utilizando la función correspondiente, por ejemplo:

private void btncifrar_Click(object sender, EventArgs e) {

nuestra_cadena = "Texto a cifrar";
cifrar(nuestra_cadena);
}

private void btndescifrar_Click(object sender, EventArgs e) {

nuestra_cadena = "Texto a cifrar";
descifrar(nuestra_cadena);
}

Buenos pues eso es todo, en verdad espero y les sea de utilidad 😀

One Comment

Deja un comentario! :)