Tengo una aplicación con una base de datos de usuarios. La base de datos almacena la contraseña utilizando un hash bcrypt con un salt aleatorio.
¿Cómo puedo implementar un conjunto de historial de contraseñas (para evitar la reutilización de contraseñas) en un caso como este?
Si tengo el restablecimiento tradicional de la contraseña de 3 campos (ingresar actual, ingresar nuevo, confirmar nuevo), podría almacenar el actual al reemplazar el antiguo con el nuevo. Sin embargo, entonces tengo el caso de una contraseña olvidada. Mis usuarios pueden ir y hacer un restablecimiento automático de autoservicio y reutilizar sus contraseñas una y otra vez.
Las contraseñas almacenadas se cifrarían, pero con un cifrado reversible que las hace menos seguras.