Tengo una página con un sistema de inicio de sesión donde escribes tu nombre de usuario y contraseña, el hash con sal se elimina de la base de datos según el nombre de usuario ...
SELECT hash FROM db WHERE username = ?
bind theSubmittedUsername
La contraseña potencial se ejecuta luego a través de un método para verificar si es la correcta o no.
Es posiblemente posible deshacerse del cuadro de entrada del nombre de usuario, por lo que solo se requiere una contraseña para autenticar al usuario.
SELECT hash FROM db WHERE ....
Estaba pensando que quizás 2 letras de cada contraseña podrían almacenarse en la base de datos en texto sin formato y luego podría hacer algo como ...
SELECT hash, username FROM db WHERE 2letters = ?
bind the2LettersOfPass
luego ejecute los hashes devueltos desde la base de datos a través de la función de comparación, ¿hay alguna forma mejor que sea más segura?