Quieres decir, que la gente usa contraseñas como "abc123" y las envía a SHA-256 para obtener "6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090".
Y luego piensan que el segundo es más seguro que "abc123".
¿Pero es?
Sí, la versión con hash es en algunos casos más segura cuando hablamos de entropía con contraseña. Porque es más largo, tiene más dígitos y caracteres aleatorios, ...
Sin embargo, esto es algo que llamamos seguridad a través de la oscuridad.
Este método es seguro, siempre y cuando nadie sepa que estás usando esto.
Porque, en realidad es solo un caso de hash de palabras débiles para SHA-256 y ver si coinciden.
Los crackers de contraseñas al realizar un ataque de diccionario definen reglas.
Pueden ser cosas como: "también intente con '123' después de cada palabra en el diccionario", o "haga mayúsculas la primera letra de las palabras en el diccionario", pero también pueden ser "hash SHA-256 cada palabra en el diccionario y prueba eso ".
Y esa regla es probablemente la que usó este atacante con contraseña.
Y sí, el SHA-256 es relativamente lento (lo que es bueno), por lo que el atacante necesitaría más y mejor hardware. Pero la gente tiene sistemas informáticos dedicados con, por ejemplo, cuatro GPU Nvidia Titan de nivel superior.
Lo que todavía puede hacer una gran cantidad de intentos de MD5 (SHA-256 ($ pass)) en un tiempo determinado.
Y sin mencionar que las botnets también son una cosa, combinando cargas de computadoras para tener más poder.
tl; dr:
Es solo una cuestión de usar buenas reglas.
Y tal vez solo SHA-256 las palabras que son cortas / débiles, en lugar de todas para ahorrar tiempo.
Sugerencia para usar contraseñas de guardado:
Tomemos, por ejemplo, cinco palabras fáciles de recordar:
Por ejemplo: batería, lámpara, sala de estar, vela, velocidad de fuego.
(La batería de mi lámpara estaba vacía, así que tomé la vela en mi sala con firespeed ).
De esta manera, su contraseña es:
batterylamplivin_groomcandlefirespeed
De esta manera usted tiene + - 35 caracteres, hemos puesto en un '_' al azar
en medio de una palabra para que sea más difícil que el atacante adivine.
Y cuando el atacante está haciendo un ataque de diccionario con reglas de combinación de palabras. Necesitaría combinar estas cinco palabras en el orden correcto, incluida una palabra como 'firespeed', y luego una regla para colocar un _ en cada lugar de la cadena.
En otras palabras, esta es una contraseña segura, fácil de recordar y fácil de escribir.
Un administrador de contraseñas sigue siendo mejor, pero la contraseña anterior podría usarse como contraseña maestra para el administrador.
Sugerencias para guardar contraseñas en una base de datos:
Use algoritmos fuertes como SHA-256, pero aún mejor: Bcrypt.
Lea los documentos sobre cómo sal y pimienta incluso,
deje que su código sea revisado por varias personas antes de usarlo,
no intentes hacer algoritmos propios.