Funciones de hash

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 validar datos (mediante sumas de comprobación) y para realizar cifrados. En el caso de las búsquedas, 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. Esto ofrece un método mucho más rápido que ordenar y comparar cada registro del archivo. Asimismo, puede utilizar las técnicas de hashing 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.
  • Ubicació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. Como en el ejemplo anterior, el tiempo necesario para la recuperación o 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.
  • Verificación de la integridad de los mensajes. El hash de los resúmenes de mensajes se realiza antes y después de la transmisión y los dos valores de hash se comparan 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.