Leyendo este tema ¿Qué tan crítico es? ¿Mantener en secreto la longitud de la contraseña? me viene a la mente el siguiente escenario:
Supongamos que tengo una aplicación web (PHP escrito con password_hash()
) que usa hashes de contraseña con sal para guardar las contraseñas de los usuarios. Un usuario intenta iniciar sesión ahora. El servidor ahora tiene que hacer algunas tareas:
- Calcule el hash de la contraseña proporcionada (por supuesto, con factores de costo)
- Comparar hash con hash guardado
Suponiendo que puedo guardar la longitud de una contraseña sin ningún problema de seguridad, podría cambiar el flujo de tareas:
- Compare la longitud de la contraseña proporcionada con la longitud guardada (no coincide con - > retorno)
- Si la coincidencia calcula el hash de la contraseña proporcionada (por supuesto, con factores de costo)
- Comparar hash con hash guardado
¿Qué piensas? ¿Sería esto "económico" porque ahorro tiempo / recursos de computación (o ralentiza el proceso en general, porque solo ahorraría tiempo si no se proporcionara una contraseña válida)? ¿O sería un problema de seguridad?