En realidad, almacenar hashes es una forma TERRIBLE de almacenar "de forma segura" las contraseñas. Por naturaleza, los hashes son imposibles de "revertir", pero eso no impide que uno genere una tabla grande (llamada tabla de arco iris ) que almacena pares de texto simple-hash. Con esta tabla es posible buscar un hash y ver su (s) contraseña (es) asociada (s) en texto simple.
La forma aceptada de almacenar contraseñas es el método hash y salt. Una salt es una cadena grande y aleatoria que se combina con la contraseña antes de calcular un hash. Esto hace que la entrada del hash sea demasiado grande para que sea factible pre-calculada en una tabla de arco iris. Al final, las únicas cosas almacenadas en una base de datos de contraseñas adecuadas son hashes y sales (las sales pueden almacenarse en texto sin formato, ya que no son del todo útiles para invertir los hashes).
Básicamente, no es necesario que tengas una contraseña larga para protegerte de los ataques de la tabla del arco iris, ya que las sales lo hacen por ti.
Computerphile hizo un gran YouTube Video sobre el almacenamiento de contraseñas.
En lo que respecta a la creación de contraseñas seguras, uno de los mejores métodos es utilizar 4-6 palabras REALES no relacionadas, de longitud media (sin la necesidad de símbolos / números). Esto garantiza una contraseña suficientemente larga, que no es fácil de adivinar, y es más importante que sea memorable (por lo que nunca tendrá la tentación de escribirla en una nota adhesiva).
TL; DR: