Encriptación

encriptarHola equipo, hoy les traigo dos ejemplos de criptografía, Md5 y SHA1:

En criptografía, MD5 (abreviatura de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado.

Por su parte, la familia SHA (Secure Hash Algorithm, Algoritmo de Hash Seguro) es un sistema de funciones hash criptográficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos y publicadas por el National Institute of Standards and Technology (NIST).

MD5 es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad.

A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en 1996, Hans Dobbertin anunciase una colisión de hash, plantea una serie de dudas acerca de su uso futuro.

La codificación del MD5 de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal.

Aquí tenemos algunos ejemplos de salidas codificadas:

MD5(” “) = d41d8cd98f00b204e9800998ecf8427e

MD5(“web”) = 2567a5ec9705eb7ac2c984033e06189d

Mientras que

MD5(“While(true){/*Our Code*/}”) = 521ee5412bd49e78dc4dbaadc36486b9

El primer miembro de la familia SHA fue publicado en 1993 es oficialmente llamado SHA. Sin embargo, hoy día, no oficialmente se le llama SHA-0 para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA-1. Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y rangos de salida incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (llamándose SHA-2 a todos ellos).

En 1998, un ataque a SHA-0 fue encontrado pero no fue reconocido para SHA-1, se desconoce si fue la NSA quien lo descubrió pero aumentó la seguridad del SHA-1.

SHA-1 ha sido examinado muy de cerca por la comunidad criptográfica pública, y no se ha encontrado ningún ataque efectivo. No obstante, en el año 2004, un número de ataques significativos fueron divulgados sobre funciones criptográficas de hash con una estructura similar a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1.

SHA-0 y SHA-1 producen una salida resumen de 160 bits (20 bytes) de un mensaje que puede tener un tamaño máximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald L. Rivest del MIT en el diseño de los algoritmos de resumen de mensaje MD4 y MD5.

La codificación hash vacía para SHA-1 corresponde a:

SHA1(” “) = da39a3ee5e6b4b0d3255bfef95601890afd80709

Ahora bien, para que utilizamos esto, o al menos yo lo he utilizado a lo largo de los años desde mis estudios universitarios hasta la actualidad, pues para codificar contraseñas almacenadas en bases de datos como  MySQL y PostgreSQL, aunque no hay limitaciones para ellos; si contamos en nuestro sitio con las contraseñas codificadas ni el propio administrador de la BD podría saberlas.

Como funciona, pues el usuario introduce su clave, esta es capturada en una variable, codificada y almacenada en la BD, mientras que el proceso de “login” sería, el usuario introduce su clave y esta una vez encriptada es comparada con la que se encuentra en la BD.

Una forma de darle mayor seguridad a la encriptación sería agregar una cadena de caracteres antes de codificar.

Sin más les dejo con el código de un ejemplo utilizando “php code” para md5 y sha1, ahora solo copia este fragmento en una página de tipo php y montalo en un servidor web.

<form id=”enc” name=”Encripta” method=”post” action=””>
<label><strong>MD5</strong>
<input type=”text” name=”md5″ />
</label>
<label><?php $md5=$_POST[“md5″]; $m=md5($md5); echo $m;?></label>
<br /><br />
<label><strong>SHA1</strong>
<input type=”text” name=”sha1″ />
</label>
<label><?php $sha1=$_POST[“sha1″]; $s=sha1($sha1); echo $s;?></label>
<p>
<input name=”” type=”submit” value=”enviar”/>
</p>
</form>

2 thoughts on “Encriptación

  1. Hermano esto lo he utilizado y le da cierta seguridad a la encriptacion aunque el admin siempre va a poder tener acceso a todo admin al fin…jejeje, saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *