Los métodos extensores.

Los métodos extensores, nos permiten “extender” la funcionalidad de una clase sin que sea necesario usar herencia o polimorfismo pudiendo añadirle funcionalidad a clases “core” del Framework.

Hay que tener en cuenta, que estos métodos aunque son muy útiles, en ningún caso pueden sustituir a la herencia de clases.

Para crear un método extensor, necesitamos un código tal como el siguiente:

public static string ToMD5(this string str)
{
MD5 md5 = MD5CryptoServiceProvider.Create();
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] stream = null;
StringBuilder sb = new StringBuilder();
stream = md5.ComputeHash(encoding.GetBytes(str));
for (int i = 0; i < stream.Length; i++) sb.AppendFormat("{0:x2}", stream[i]);
return sb.ToString();
}

Como veis, el metodo extensor, ha de ser estático y ademas, va a recibir siempre como parametro el objeto que lo llama, a este objeto tenemos que añadirle el parametro this.

Así de facil y sencillo. Este tipo de metodos, los había usado con JavaScript y ActionScript, y ahora, mis drugitos, los podemos usar con C#, toda una maravilla.

Bajate el código y échale un ojo, y cuando uses este tipo de metodos, cuidado, ten en cuenta que no estan pensandos para sustituir la funcionalidad que nos proporciona la herencia, y como bien dicen aquí, es interesante agruparlos en un mismo namespace (que en una única clase).

Nunca han sido santos de mi devoción los planetas, aunque desde hace unos días, no paro de escuchar su “corrientes circulares en el tiempo”, canción mucho más madura que la mayoría de sus exitos.

Anuncios

Generando un hash MD5 con ASP.NET y C# de forma sencilla y simple.

El MD5 es un algoritmo criptográfico de 128 bits. Fue desarrollado por Ronald Rivest (profesor del MIT) en el año 91 como sucesor del MD4 y pesar de que en el año 96 fue anunciada una colisión de hash planteándose por lo tanto dudas sobre su futuro, a día de hoy es muy usado.

Por medio del MD5, vamos a obtener un hash sobre un conjunto de datos. Un hash viene a ser un conjunto de datos obtenido en base a otros.

Este tipo de algoritmos, se usa para certificar que una secuencia de datos no ha sido alterada, ya que si se modifica el valor del hash, implica que esa información ha cambiado.

El resultado obtenido por medio de un MD5 es una cadena hexadecimal de 32 dígitos.

¿Cómo podemos obtener un hash mediante el MD5?

Pues vamos a verlo, la verdad es que generar un hash MD5 con C# es sencillo dado que el Framework (como siempre) nos proporcionan unas clases para realizar esto. Sigue leyendo