.NET Tutorial 15. Jugando a ser James Bond: cifrando y descifrando textos

A lo largo de la historia, el ser humano siempre ha tenido la necesidad de esconder sus más profundos secretros. Ya lo dijo en su dia Robert Reford, encarnando a Martin Bishop en la excepcional película Los fisgones (Sneakers, 1992): "Too many secrets"

Hoy vamos a ver lo simple que es realizar una tarea de "cifrado" y "descifrado" desde .NET:

.NET dispone de un namespace totalmente orientado a trabajar con algoritmos de clave simétrica. El namespace es System.Security.Cryptography

Ahi disponemos de unos cuantos metodos de cifrado y descifrado.

El que hemos usado para este ejemplo es el conocido como Rijnadael y es posiblemente el más seguro (por lo menos, públicamente, a saber lo que tienen montado los chicos de la NSA) hasta la fecha.

Al contrario de lo que pueda parecer a priori, realizar un cifrado / descifrado utilizando las clases y métodos que están en System.Security.Cryptography es tremendamente simple.

Para ello nos hemos creado una clase, a la que hemos llamado Crypto.

Dicha clase tiene dos funciones:

EncriptacionRijndael ( )
DesencriptacionRijndael ( )

La función EncriptacionRijndael se le pasará como argumento el texto que se quiere cifrar y nos devolverá un texto "cifrado" con el algoritmo Rijndael.

Por el contrario, la función DesencriptarcionRijndael se le pasará como argumento un texto cifrado y nos devolverá el texto "descifrado".

Obviamente, deberéis cambiar las contraseñas por las vuestras propias, en este caso los valores de las variables _key y _iv.

Para finalizar he incluido una "encriptación" basada en XORs, que es posiblemente el método más viejo y rápido para cifrar y descifrar un texto, aunque claro está, también es el menos seguro.

 

Cualquier comentario será bienvenido. 😉
 

Saludos.
mov eax,ollydbg; Int 13h  

Descargar proyecto .NET Tutorial 15
(42 KB. Visual Studio 2008)