martes, 26 de mayo de 2009

FUNCION HASH

FUNCION DE DISPERSION HASH
Una función hash es un algoritmo matemático que nos da un resultado B al aplicarlo a un valor inicial A.

Es como cualquier función matemática, por ejemplo la función raíz cuadrada nos daría como resultado 2 si se la aplicamos al número 4.

Al igual que cualquier función matemática tiene que actuar de tal forma y tiene que cumplir con ciertos criterios. No nos puede devolver cualquier cosa, lo que nos devuelva requiere que tenga ciertas propiedades para que podamos usarlo.

Una función de Hash es una caja negra que tiene como entrada una llave y como salida una dirección
h(K)=address
Ejemplo: h(LOWELL)=4
El hashing es similar al indexamiento en el sentido de asociación entre llaves y direcciones relativas de registros
Pero difiere de los índices en 2 cosas:

1. La dirección generada por Hash suele ser aleatoria (random).
No hay una relación aparente entre la llave y la localización del registro correspondiente
2. El Hash permite que 2 llaves puedan producir la misma salida --> direcciones iguales, a esto se le conoce como "colisión".

PROPIEDADES BASICAS PARA CUMPLIR POR LAS FUNCIONES HASH
1. Sea cual sea la longitud del texto base A, la longitud de su hash resultante B siempre va a ser la misma.
Si la longitud de la salida B esta defiinida en 128 bits, si aplicamos una función hash a un A de 5 bits nos dará un B de 128 bits, y si se la aplicamos a un A de 380 millones de bits, nos dará un B de 128 bits igualmente.
2. Para cada entrada A, la función generará una salida B única. O lo que es lo mismo, es imposible que dos textos bases A y A' tengan un mismo hash B.
3. Dado un texto base, es fácil y rápido (para un ordenador) calcular su número resumen.

No hay comentarios: