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.
// 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 cadenabyte[] 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 cadenareturn 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 😀
Muy buen post, me sirve para encriptar una contraseña en la configuración del usuario.