¿Por qué el cifrado de la función Algoritmo de hash no puede transformar el texto cifrado en texto sin formato?

Me limitaré a las respuestas existentes.

El hash no es encriptado. Un requisito de cifrado es descifrar. En otras palabras, debe poder recuperar el texto sin formato original de la salida de la función de cifrado (el texto cifrado). El hash no tiene este requisito. Está bien si el valor original se ha ido ya que estamos interesados ​​en el valor hash.

El hash puede ser un poco confuso ya que la idea se usa en muchos lugares y los requisitos de hash pueden cambiar según la aplicación. Por ejemplo, supongamos que tengo una tabla hash con 256 ranuras (8 bits). Para usarlo, tomaré una cadena, la dividiré en hash y obtendré un valor hash de 0–255. Luego uso el valor hash como índice en la tabla hash. Tenga en cuenta que nuestra función hash debe producir un número entre 0–255 ya que queremos usarlo como índice en una tabla. Dado que solo hay 256 posibles valores hash, está bastante claro que algunas cadenas diferentes van a tener el mismo valor (una colisión). En esta situación, está bien. Solo estamos buscando una manera de dispersar las cadenas alrededor de la tabla hash para que podamos hacer una búsqueda rápida.

Ahora considere el hash para contraseñas. Cuando usamos contraseñas, no ciframos la contraseña original y luego la desciframos para verificarla con una contraseña entrante. Lo que hacemos es cambiar la contraseña original y luego la contraseña entrante y ver si los valores son los mismos. No queremos que las contraseñas almacenadas sean reversibles en absoluto. En esta situación, tener solo 256 valores hash posibles no es aceptable. Sería muy fácil encontrar otra cadena que tenga el mismo valor que una contraseña real. Nuestro verificador de contraseñas pensaría que esta nueva cadena coincidía ya que los hash coincidirían. Para las contraseñas, esto se hace haciendo que la función hash use un rango mucho más grande de valores de salida, quizás 512 bits. Puede parecer que esto es cifrado, ya que el cifrado usa estos tamaños de bloque más grandes, pero no lo es. Todavía es hashing. No puede tomar el valor hash y de alguna manera invertirlo para obtener el valor original.

Una forma de recordar esto es pensar que el cifrado toma un valor y lo coloca en una bóveda bancaria muy sólida y sofisticada. (Una cripta puede considerarse una especie de bóveda, por lo tanto, cifrar). Si conoce el secreto para abrir la bóveda, puede recuperar el valor. Por otro lado, el término “hash” significa cortar en pedazos. Es el nombre de un plato en el que todos los ingredientes se cortan en pedazos y se combinan.

Cifrar: sus objetos de valor están seguros y se pueden recuperar

Hash: tus objetos de valor no se pueden recuperar

Estás mezclando tus términos. Hashing no es encriptación. El resultado de una función hash no es texto cifrado, es un hash.

Los hashes son unidireccionales, no se pueden revertir en los datos originales.

Básicamente, un algoritmo de hash es una función (o proceso) matemática no invertible. Como este proceso no es invertible, no puede volver atrás.
Por cierto, el hash no es cifrado, por lo que es bastante incorrecto hablar de texto cifrado.

Hashing no es encriptación; no es reversible dado solo el hash.

Una función hash convierte cualquier dato de cualquier dato en una cadena de bits de tamaño fijo, por ejemplo SHA-256 convierte cualquier dato de cualquier tamaño en un BitString de tamaño 256-Bit. Eso significa que puede convertir una imagen de tamaño 1GB en un BitString de 256 bits, por lo tanto, pierde mucha información. ¿Cómo va a recrear esa información perdida cuando desee “descifrar” el valor hash más adelante? No hay forma de recrear los bits y bytes que faltan de la nada.

Respuesta corta: el hash significa comprimir datos en una cadena de bits de longitud fija y, por lo tanto, significa perder información como resultado. Nunca puede invertir el hash de nuevo a los datos originales. Similar a poner fruta en una licuadora … es un camino de sentido único.

More Interesting

Cómo encontrar la tasa de ganancia más efectiva con la menor cantidad de coincidencias posible (algoritmo)

¿Qué se debe saber o hacer antes y al escribir un algoritmo?

Si tengo un buen conocimiento de Java, C ++, algoritmos y estructuras de datos y quiero ser un profesional independiente. ¿Cuánto puede ganar alguien con estas habilidades?

Cómo implementar un código C para la eliminación de un nodo de una lista vinculada considerando todos los casos de prueba

Cómo resolver el problema ADDGP en SPOJ

¿Cuáles son algunos "problemas de práctica" en los que todos deberían trabajar para mejorar la programación (en cualquier lenguaje de programación)?

Quiero aprender algoritmos, pero no tengo amigos que estén interesados ​​en él. ¿Cómo aprenderlos de manera efectiva por mi cuenta?

¿Cuáles son algunos ejemplos de problemas que son: (1) NP pero no NP-Complete; (2) NP-Completo; (3) NP-Hard pero no NP-Complete?

¿Qué es un algoritmo eficiente para encontrar un circuito euleriano en un gráfico no dirigido?

¿Cómo se calculan los tiempos de conducción de Google Maps?

¿Puedo escribir sobre mi propio algoritmo de clasificación en CV?

Inventé un algoritmo de búsqueda de cadenas. ¿Cómo hago para asegurarme de que lleva mi nombre? ¿Es posible patentarlo / copyright o alguna otra cosa? ¿Se pueden proteger los algoritmos?

Cómo contar en binario

¿Qué piensa Ashish Kedia sobre el libro 'Introducción a los algoritmos de CLRS'? ¿Cómo ha estudiado el libro?

¿Cuáles son los algoritmos de correspondencia de gráficos de última generación?