Aquí encontrarás todo lo relacionado a la tecnología, computación, informática y demás. Enterate de las noticias del momento en cuanto a tecnología se refiere.





Encriptación de Texto en C# con Mono

La encriptación en el área de seguridad es muy importante, y más aún en una aplicación a la hora de guardar contraseñas en una base de datos.

Aquí les dejo un proyecto con el cuál podemos encriptar y desencriptar texto con la ayuda de algunas clases que se encuentran en .NET, me basé en ésta página Using System.Linkecubeko

Para comenzar utilizaremos los siguientes espacios de nombres:

using System.Text;
using System.Security.Cryptography;

Y con las siguientes clases:

MD5CryptoServiceProvider (Clase)

Calcula el valor de hash MD5 (Message-Digest Algorithm 5), de los datos de entrada utilizando la implementación proporcionada por el proveedor de servicios criptográfico (CSP). Esta clase no se puede heredar.

UTF8Encoding (Clase)

Representa una codificación UTF-8 de caracteres Unicode.

TripleDESCryptoServiceProvider (Clase)

Define un objeto contenedor para obtener acceso a la versión del proveedor de servicios criptográficos (CSP) del algoritmo TripleDES (algoritmo que hace triple cifrado del algoritmo Data Encryption Standard) No se puede heredar esta clase.

CipherMode (Enumeración)

Especifica el modo de cifrado de bloques que se utilizará para cifrar.
PaddingMode (Enumeración)

Especifica el tipo de relleno que se aplica cuando el bloque de datos del mensaje es más pequeño que el número total de bytes necesarios para una operación criptográfica.

ICryptoTransform (Interfaz)

Define las operaciones básicas de las transformaciones criptográficas.

Gracias al proyecto mono, podemos crear esta clase y liberarla bajo la licencia GPL.

Aquí les dejo la clase cifrado ya codificada: cifrado.cs

Para comenzar, creamos un proyecto nuevo C# con Gtk# en Monodevelop y creamos una forma más ó menos como ésta:

Para facilitar mejor las cosas he creado una dll con las clases para encriptar y desencriptar, primero nos descargamos la dll: criptologia.dll, luego la agregamos como referencia a nuestro proyecto dando click derecho en Referencias y luego Editar preferencias… .:

Ahora en el evento Click del Botón que dice encriptar, ponemos lo siguiente:

criptologia.Cifrado oCifrado = new criptologia.Cifrado();
entry2.Text = oCifrado.Encriptar(entry1.Text);

Y en el evento Click del Botón desencriptar, ponemos:

criptologia.Cifrado oCifrado = new criptologia.Cifrado();
entry3.Text = oCifrado.Desencriptar(entry2.Text);

Aquí les dejo el proyecto terminado: encriptacion.zip.

Conclusión:

Con ésto podemos agregar mayor seguridad en nuestros aplicaciónes ó sistemas, gracias a mono nuestra DLL es libre y se puede utilizar con cualquier propósito, estudiar, modificar y redistribuir.

Programación openGL en Mono

Para aquellos comentarios que hicieron en Richar StallMan encontra de mono, diciendo que mono que aporta sobre cualquier otra combinación de herramientas, pues ahora les comparto unos proyectos en c# con openGL.

Primero, ¿Qué es openGL?

OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. ojo: Herramienta libre.

Sin embargo para poder trabajar en .NET con openGL, necesitamos de un framework que nos ayuda a ello, para eso utilizaremos Tao Framework.

¿Qué es el Tao Framework?

Tao es un framework para .NET que incluye OpenGL entre otras bibliotecas multimedia. Está la versión tanto para windows como para linux, aquí les dejo las dll para linux.
Download Tao Framework para linux.

Una vez que ya tengamos el tao descargado, creamos un proyecto nuevo de consola en monodevelop y agregamos las referencias de únicamente 3 dlls: Tao.FreeGlut.dll, Tao.OpenGL.dll y Tao.openGL.Glu.dll.

Para agregarlas es darle click derecho en donde dice Referencias->Editar referencias…. Ahí van a la carpeta del tao y agregan las 3 dlls ya mencionadas.

En su proyecto agregan los espacios de nombres de las dlls referenciadas:

using Tao.FreeGlut;

using Tao.OpenGl;

Para éste ejemplo se hizo una pirinola que rota en sus ejes X,Y y Z con esas mismas teclas lo pueden rotar, y cómo simulación de una pirinola que es girada sobre el suelo, se hizo con la tecla R.

Cómo el código es un poco largo, cerca de 450 línes de código, les dejo el proyecto para que lo descarguen:

Descargar pirinola.

Conlusión

Con una combinación de herramientas libres, se puede hacer éste tipo de cosas.

Todos los derechos reservados. Tecnologia.