Cómo descifrar una contraseña dado su hash y sus posibilidades

1

Estoy intentando descifrar una cantidad de contraseñas que se han cifrado usando SHA-256.

Tengo los hashes disponibles y también tengo las posibilidades en que puede estar la contraseña. Algunas de estas posibilidades incluyen;

  1. una palabra inglesa en minúscula
  2. un nombre en minúscula simple como bob o alice.
  3. una combinación de 4 valores alfanuméricos con caracteres especiales, por ejemplo, ro @ !, f6 & h

Así, por ejemplo, tengo hash

9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08

y quiero obtener la contraseña usando un algoritmo (uno que codificaré en Java) para obtener la contraseña:

test

Le estoy preguntando para ver dónde comenzar y cómo puedo completar esta tarea.

Primero pensé en calcular todos los hashes para las posibilidades de contraseña y la referencia cruzada con los hashes que recibí, pero esta no parece ser la respuesta correcta, ya que tomaría demasiado tiempo.

¿Hay alguna otra manera de descifrar estas contraseñas?

    
pregunta user193292 10.12.2018 - 18:13
fuente

2 respuestas

1

Hashcat se utiliza para romper hashes específicos como MD5, SHA-256, bcrypt y mucho más. Hashcat tiene reglas específicas que puede incluir si no puede descifrar el has con la palabra directorio. Hashcat requiere un directorio de contraseñas para que pueda forzar el hash. Como ejemplo, hice -1 ?l ?1?1?1?1?1?1 para mostrar el conjunto de caracteres personalizado con -1 (puedes tener 4, creo) ?l es mi conjunto de caracteres (todo lo bajo) también permite "u? D? S? A para mayúsculas , números, caracteres especiales y todo ?1?1?1?1?1?1 es una máscara.

    
respondido por el zuckonit 10.12.2018 - 20:48
fuente
1

En general, para "descifrar una contraseña" tienes que probar muchas combinaciones y tomará mucho tiempo si la contraseña no es débil.

Para cada contraseña que sea candidato, calcule su hash, búsquelo en la lista de hashes dados, si no hay coincidencia, descarte el hash calculado (no es necesario que lo conserve), intente con el siguiente candidato.

Puede usar algún tipo de estructura de datos tabla hash ( HashSet en Java) para mantener los hashes dados: tiene O (1) complejidad de búsqueda. Es importante si te dan una larga lista de hashes para crackear.

    
respondido por el Strigo 10.12.2018 - 22:12
fuente

Lea otras preguntas en las etiquetas