Skip to main content

¿Qué son los hashes?

Los hashes son fórmulas matemáticas que toman una cadena de datos de longitud variable, generalmente en forma de texto, y la convierten en valores numéricos más cortos y de longitud fija. Los hashes se usan con frecuencia en bases de datos informáticas para que las búsquedas sean más rápidas y eficientes. También se utilizan en el cifrado para garantizar que las contraseñas no se vean comprometidas y para autenticar las firmas digitales, entre otros usos. Los hashes también se denominan funciones hash y también pueden considerarse algoritmos.

Los hashes juegan un papel importante en facilitar las búsquedas en la base de datos. En una base de datos que consta de nombres, por ejemplo, si un usuario busca "John Doe", la computadora tendría que hacer coincidir todos los caracteres de la búsqueda con los de cada entrada de la base de datos. Cada carácter en el nombre tendría 26 posibilidades diferentes, las letras del alfabeto inglés, mientras que la longitud variable de las entradas también ralentizaría la búsqueda.

Por el contrario, la aplicación de una función hash facilitaría mucho la vida de la computadora. Convertir cada cadena de texto en una serie de números simplificaría la búsqueda, porque la computadora solo tendría diez posibilidades para verificar cada carácter: dígitos "0" a "9." La longitud fija de la serie de números también ayuda a la computadora a hacer su trabajo. trabajo de manera más eficiente.

En una base de datos con una función hash aplicada, todas las entradas tienen un número único correspondiente. Esto se llama una clave hash. En este caso, cuando realiza una búsqueda, la computadora primero aplica la función hash a la entrada que ha escrito, como "John Doe". Esto da como resultado un valor numérico, por ejemplo "456789". La computadora puede rápidamente haga coincidir este resultado con la clave hash correspondiente a la entrada correcta.

Los hashes también funcionan como firmas digitales. Por ejemplo, un remitente, Robert, quiere enviar un documento a alguien y el destinatario, Mary, quiere asegurarse de que el documento no haya sido manipulado durante el camino. El remitente, Robert, solo tiene que ejecutar el documento a través de una función hash, que da como resultado un valor numérico. Luego, Robert cifra la clave hash y envía el documento junto con la clave cifrada.

Mary recibe ambos elementos y descifra la clave hash. Ahora puede ver el valor numérico que resultó del documento antes de enviarlo. Para verificar que el documento en sus manos es exactamente el mismo, ejecuta el documento a través de una función hash en su computadora. Por último, ella compara ambas claves. Si son iguales, entonces el documento no fue alterado en su camino hacia el destinatario.

Existen muchas funciones hash diferentes, cada una con sus propias fórmulas matemáticas. Para que una función hash funcione, debe minimizar cualquier colisión, que ocurre cuando dos entradas de la base de datos tienen la misma clave hash. Las funciones hash también deben ser unidireccionales. Eso significa que puede producir una clave desde una entrada de la base de datos o documento, pero no al revés. En otras palabras, no puede "aplicar ingeniería inversa" al documento original desde su clave hash.