Pensé que sha256 es imposible de romper (hasta ahora). Pero vi un sitio web, que podría descifrar mi hash. Esto es así porque almacenan los recursos conocidos en una base de datos o ¿Realmente descifran hashes? Aquí hay una imagen:
Tienes razón, las funciones hash SHA256
, SHA384
y SHA512
están (actualmente) intactas, por lo que no es posible revertirlas fácilmente. MD5
y SHA1
se consideran rotos porque los investigadores han encontrado pares de cadenas que producen el mismo valor hash, pero incluso éstas requieren semanas o meses de cálculo.
(nota: no me gusta que el sitio use "descifrar" porque esa es una palabra que usas para cifrar; no puedes "descifrar" un hash)
Lo que probablemente están haciendo es un ataque de diccionario en el que han calculado previamente los hashes para todas las palabras comunes del diccionario. . Esto les daría una tabla de búsqueda que incluiría un hash y devolvería la palabra que lo produce.
Solo para dar una idea de la escala, hay 171,476 palabras en inglés y un hash SHA256
toma 32 bytes, por lo que almacenar el hashes SHA256
de todas las palabras en inglés solo tomaría alrededor de 5 mb.
Tu hash no fue resquebrajado, se calculó previamente y se colocó en una tabla de arco iris .
Hashing es una función criptográfica unidireccional diseñada para ser comparada y no descifrada como un valor que se ha cifrado.
Entonces, lo que este sitio web ha hecho es tomar un montón de cadenas, hacerles un hash usando varios algoritmos y almacenar el valor del hash. De esa manera, cuando ingresa su hash, compara ese hash con los valores que ya está almacenado para aparentemente "revertir" el hash. Esta es la razón por la que usar un salt es tan importante mientras se realiza el hashing.
Lea otras preguntas en las etiquetas hash sha sha256 decryption