Puede utilizar funciones hash para codificar datos, transformar la entrada
en un "código hash" o un "valor hash". El algoritmo hash se designa para minimizar
la posibilidad de que dos entradas tengan el mismo valor de hash,
que se denomina colisión.
Puede utilizar funciones hash para agilizar la recuperación de los registros
de datos (búsquedas simples en una sola dirección) para la validación de los datos ("sumas de comprobación")
y para cifrado. En el caso de las búsqueda, el código hash se utiliza como un índice
en una tabla hash que contienen un puntero al registro de datos. Para las sumas
de comprobación, el código hash se calcula para los datos antes del almacenamiento
o la transmisión y se vuelven a calcular más tarde para comprobar la integridad;
si los códigos hash no coinciden, indica que los datos están dañados. Las funciones hash
de cifrado se utilizan para proteger los datos.
Algunos casos de uso comunes para las funciones hash son:
- Detección de registros duplicados. Dado que las claves hash de los duplicados
realizan el hash en el mismo "grupo" que la tabla hash, la tarea reduce la exploración
de grupos que tengan más de dos registros para ofrecer un método mucho más rápido
de ordenar y comparar cada registro del archivo. (Esta misma técnica se puede utilizar
para encontrar registros similares, porque las claves similares realizan el hash en grupos
que son contiguos, de forma que la búsqueda de registros similares se puede limitar, por tanto,
a esos grupos.)
- Localización de puntos cercanos entre sí. La aplicación de una función hash
a los datos espaciales realiza una partición efectiva del espacio que se está modelando
en una cuadrícula y como en el ejemplo anterior, el tiempo necesario de recuperación
o necesario para la comparación se reduce de forma significativa porque solo es necesario
buscar las celdas contiguas en la cuadrícula. Esta misma técnica funciona con otro tipo de
datos espaciales, por ejemplo, formas e imágenes.
- Verificar la integridad de los mensajes. El hash de los resúmenes de mensajes se realiza
antes y después de la transmisión de los dos valores de hash comparados para determinar
si el mensaje se ha dañado.
- Verificación de contraseñas. Durante la autenticación, se realiza un hash de las credenciales de inicio de sesión
de un usuario y este valor se compara con la contraseña con hash
almacenada para ese usuario.