¿Qué es la función hash unidireccional? definición y significado

Una función hash unidireccional es una función matemática que genera una huella digital de la entrada, pero no hay forma de volver a la entrada original. Si la entrada es la misma, el hash es siempre el mismo, si cambia en absoluto, incluso un carácter, el hash de salida es completamente diferente. Se puede usar un hash para verificar que la entrada A es la misma que la entrada B, pero no se puede usar para recuperar la entrada de la salida como con otra función matemática, el cifrado.

ExpertoGeek explica la función hash unidireccional

La salida de un hash unidireccional siempre tiene la misma longitud, independientemente de la longitud de la entrada. Por ejemplo, la salida del algoritmo hash md5 siempre tiene 32 caracteres de longitud si se representa en hexadecimal, esto es cierto si la entrada es un carácter o la longitud de todas las obras de Shakespeare.

Un hash es ideal para comprobar que dos cosas son iguales, tiene dos usos principales. «Integrity Check» verifica que un archivo descargado es idéntico al del servidor comparando un hash conocido del archivo del servidor con un hash del archivo descargado.
Los algoritmos hash también se utilizan en las bases de datos para verificar que el hash de la contraseña enviada coincide con el hash almacenado. También significa que si un pirata informático obtiene acceso no autorizado a la base de datos, no obtiene sus contraseñas, sino sus hashes, que no se pueden usar para iniciar sesión directamente.

La longitud de la salida de un algoritmo hash limita el número de salidas posibles y, por lo tanto, describe su fuerza contra los «ataques de colisión» hash. Los ataques de colisión son aquellos en los que dos entradas diferentes generan la misma salida. Es bastante difícil encontrar dos entradas aleatorias que generen la misma salida, es mucho más difícil encontrar una colisión para una única salida hash específica.

Usos comunes de la función hash unidireccional

  • Hay dos tipos de algoritmos hash unidireccionales, el rápido y el lento, el rápido se usa para verificar archivos y el lento se usa para el hash de contraseñas.
  • La entrada de un algoritmo hash unidireccional no se puede determinar analizando la salida o ejecutándola a través de alguna otra función.
  • Cuando un hacker tiene una lista de hashes de contraseñas de una base de datos robada, determina qué algoritmo hash unidireccional se usó, luego adivina tantas contraseñas como sea posible, cuando tienen una salida. Que coincide con una entrada en la base de datos, conocen el entrada es la contraseña del usuario.

Malos usos habituales de la función hash unidireccional

  • Un algoritmo hash unidireccional es un tipo de cifrado y se puede utilizar para almacenar datos de forma segura para su posterior recuperación mediante una contraseña y otras funciones.
Experto Geek - Tu Guía en Tendencias Tecnológicas