579 Shares 9507 views

Una función hash es: ¿qué es, por qué y lo que sucede

A menudo, cuando la descarga de torrentes o archivos directamente a sí mismos en la descripción hay algo así como «ad33e486d0578a892b8vbd8b19e28754» (por ejemplo, en ex.ua), a menudo con una nota «MD5». Este código hash – el resultado que da salida a una función hash después de procesar los datos entrantes. En Inglés la almohadilla indica la confusión, la marihuana, la mala hierba, o un plato de carne picada y verduras. Desencriptar el hash es muy difícil, podemos decir que es prácticamente imposible. Entonces surge la pregunta: "¿Por qué necesitamos todas estas funciones hash, si dan un galimatías incomprensible, que tampoco puede ser descifrado?". Esto será discutido en este artículo.

¿Qué es una función hash, y cómo funciona?

Esta función está diseñada para convertir los datos entrantes cantidad arbitrariamente grande como resultado de longitud fija. El proceso mismo de tal transformación se llama hash, y el resultado – un hash o código hash. A veces, incluso el uso de la palabra "huella digital" o "resumen del mensaje", pero en la práctica son mucho más raras. Hay muchos algoritmos diferentes de cómo transformar cualquier conjunto de datos en una cierta secuencia de símbolos de cierta longitud. El algoritmo más usado llamado MD5, que se desarrolló a partir de 1991. A pesar de que hasta la fecha, MD5 es un poco anticuado, y el uso no está recomendado, sigue siendo todavía está alrededor, y con frecuencia en lugar de "código hash" en sitios simplemente escribir MD5, e indicar el código en sí mismo.

¿Por qué necesitamos una función hash?

Sabiendo el resultado, es prácticamente imposible determinar los datos originales, pero los mismos datos de entrada dan el mismo resultado. Por lo tanto, la función hash (también llamada función de convolución) a menudo se utiliza para almacenar información muy sensible como su contraseña, nombre de usuario, número de identificación y otra información personal. En lugar de comparar la información introducida por el usuario, con los almacenados en la base de datos, se realiza una comparación de los valores hash. Esto asegura que en caso de fuga accidental de información, nadie puede tomar ventaja de los datos importantes para sus propios fines. Al comparar el código hash también es conveniente para comprobar la exactitud de la descarga de archivos de Internet, especialmente si la interrupción de comunicación durante la descarga.

Hash: lo que son t

Dependiendo de su función hash de destino puede ser de tres tipos:

1. La función para comprobar la integridad de la información

Cuando una transmisión de datos a la red, no es el cálculo del paquete de hachís, y este resultado también se transmite junto con el archivo. Cuando se recibe de nuevo computado código hash y se compara con el valor obtenido por la red. Si el código no coincide, se indica un error, y el paquete dañado será transferido de nuevo. En una velocidad rápida función de cálculo tal, sino un pequeño número de valores de hash y la mala estabilidad. Un ejemplo de este tipo: CRC32, que tiene sólo 232 valores diferentes.

2. La función criptográfica

Este tipo se utiliza para proteger contra el acceso no autorizado (ND). Ellos le permiten comprobar para ver si hubo corrupción de datos como resultado de la LP durante la transferencia de archivos a través de la red. Hash es cierto a disposición del público, en este caso, como el hash del archivo recibido puede ser calculada utilizando una pluralidad de diferentes programas. Tales características de larga vida y un funcionamiento estable, y la búsqueda de colisiones (resultados posibles resultados de diferentes fuentes de datos) es muy complicado. Tales funciones se utilizan para el almacenamiento en la base de datos contraseña (SH1, SH2, MD5) y otra información valiosa.

3. La función está diseñada para crear una estructura de datos eficiente

Su propósito es más bien la organización compacta y ordenada de la información en una estructura especial, que se llama la tabla hash. Esta tabla le permite añadir nueva información, borrar la información y buscar los datos requeridos a velocidades muy altas.