Criptografía.
Usando las clases de la plataforma .net

Fecha: 16 de Septiembre de 2003 (18/Sep/2003)
Autor: Gonzalo Antonio Sosa M. E-mail


Prueba de la clase Crypto.

Para  probar las clases que hemos escrito anteriormente se ha utilizado una aplicación de consola, usando los 4 proveedores de servicios criptográficos que se proporcionaron. Una parte del código es el siguiente:

namespaces importados:

using System;
using System.IO

Dentro del método Main se utilizan bloques dónde se crean objetos de la clase crypto. El siguiente es un ejemplo del uso de la clase, creada pasando como parámetro al proveedor Rijndael de encripción; se establecen los valores para la llave privada y el vector de inicialización. Ciframos y desciframos una cadena ordinaria, a continuación se muestra el resultado de ambas operaciones.

Crypto objCrypto = new Crypto(Crypto.CryptoProvider.Rijndael);
objCrypto.Key = "12345678password";
objCrypto.IV = "password12345678";
Console.WriteLine("Encripción usando el algoritmo {0}\nkey = {1} y IV = {2}",
Crypto.CryptoProvider.Rijndael.ToString(), objCrypto.Key.ToString(), objCrypto.IV.ToString());

string resul = objCrypto.CifrarCadena("Prueba de la clase crypto");
Console.WriteLine("La cadena Cifrada es: {0}", resul);
resul = objCrypto.DescifrarCadena(resul);
Console.WriteLine("La cadena descifrada es: {0}", resul);

Para probar el cifrado de archivos, proporcionamos la ruta completa del archivo que deseamos cifrar, la ruta completa del archivo de salida; si éste no existe, se crea. Y por último la acción ha realizar. Antes de aplicar el método de cifrado validamos que los archivos existan, y procedemos a realizar la operación.

Console.WriteLine("Escribe la ruta y nombre del archivo a cifrar / descifrar: ");
string archivo = Console.ReadLine();

if (File.Exists(archivo))
{
    Console.WriteLine("Teclea el nombre del archivo de salida");
    string archivoSalida = Console.ReadLine();

    if (archivoSalida != "")
    {
        objCrypto = null;
        objCrypto = new Crypto(Crypto.CryptoProvider.Rijndael);
        objCrypto.Key = "12345678password";
        objCrypto.IV = "password12345678";

        Console.WriteLine("Cifrando / descifrando");
        objCrypto.CifrarDescifrarArchivo(archivo, archivoSalida, Crypto.CryptoAction.Encrypt);
        Console.WriteLine("Operación terminada");
    }
    else
    Console.WriteLine("¡error¡");
}
else
Console.WriteLine("¡El archivo no existe!");

Console.ReadLine();

Para probar el descifrado del archivo, hay que pasar como archivo de entrada, la ruta completa del archivo cifrado, como archivo de salida la ruta y nombre del archivo que deseemos; y modificaremos el parámetro de acción:

de:

objCrypto.CifrarDescifrarArchivo(archivo, archivoSalida, Crypto.CryptoAction.Encrypt);

a:

objCrypto.CifrarDescifrarArchivo(archivo, archivoSalida, Crypto.CryptoAction.Desencrypt);
 
Anterior Menú Siguiente

ir al índice