Tengo curiosidad acerca de los métodos para descifrar contraseñas como el diccionario y los ataques de fuerza bruta. Hoy en día, las contraseñas se almacenan como hashes y no como texto simple en el servidor. Entonces, ¿cómo pueden compararse las contraseñas de texto simple en el diccionario con los hashes en la base de datos filtrada? Dado que los hashes pueden ser de diferentes tipos como bcrypt, SHA-512, etc., ¿cómo pueden las herramientas de cracking saber cómo crear los hashes y compararlos?
Por ejemplo, eche un vistazo al ataque del diccionario a continuación. Las contraseñas filtradas son solo hashes y el diccionario tiene palabras simples en inglés. Entonces, ¿cómo se pueden comparar? ¿Cómo sabe el atacante o las herramientas de craqueo qué algoritmo hash debería usar? Incluso la sal está ahí, pero ¿cómo sabe el atacante qué es la sal?