kotaix4

Hashing y cifrado son dos técnicas que sirven para proteger la información. El cifrado permite descifrar posteriormente el texto original y recuperarlo. El hashing resume el texto en una pequeña huella que no puede descifrarse.Estas funciones de resumen son algoritmos que consiguen crear a partir de una entrada (ya sea un texto, una contraseña o un archivo, por ejemplo) una salida alfanumérica de longitud normalmente fija que representa un resumen de toda la información que se le ha dado (es decir, a partir de los datos de la entrada crea una cadena que solo puede volverse a crear con esos mismos datos).

Características de los hash

En definitiva las funciones hash se encargan de representar de forma compacta un archivo o conjunto de datos que normalmente es de mayor tamaño que el hash independientemente del propósito de su uso.

Este sistema de criptografía usa algoritmos que aseguran que con la respuesta (o hash) nunca se podrá saber cuales han sido los datos insertados, lo que indica que es una función unidireccional. Sabiendo que se puede generar cualquier resumen a partir de cualquier dato nos podemos preguntar si se podrían repetir estos resúmenes (hash) y la respuesta es que teóricamente si, podría haber colisiones, ya que no es fácil tener una función hash perfecta (que consiga que no se repita la respuesta), pero esto no supone un problema, ya que si se consiguieran (con un buen algoritmo) dos hash iguales los contenidos serían totalmente distintos.

Ejemplos y formas de uso

Las funciones hash son muy usadas, una de las utilidades que tiene es proteger la confidencialidad de una contraseña, ya que podría estar en texto plano y ser accesible por cualquiera y aún así no poder ser capaces de deducirla. En este caso, para saber si una contraseña que está guardada, por ejemplo, en una base de datos es igual a la que hemos introducido no se descifra el hash (ya que debería de ser imposible hacerlo) sino que se aplicará la misma función de resumen a la contraseña que especificamos y se comparará el resultado con el que tenemos guardado (como se hace con las contraseñas de los sistemas Linux).

Un ejemplo de esto es generar claves con hash en SHA1, por ejemplo, tenemos una contraseña sin protección:

MiPasswordesUnicornioRosa

Aplicando SHA1 quedaría

45f48feda40b153f2d4f5f0e6a9004d86f07a2b5

 

Anuncios