Lo importante es que el atacante no debe ser capaz de obtener fuerza bruta para acceder.
Eso no significa necesariamente que el algoritmo hash tenga que ser lento. El flujo de inicio de sesión de extremo a extremo debe ser lo suficientemente lento. Esto se puede lograr de varias maneras:
- Como mencionas, cambia el algoritmo de hash para que sea lento.
- No permitir intentos de inicio de sesión durante un cierto tiempo después de un cierto número de intentos incorrectos.
- Mandar contraseñas de mayor longitud y complejidad. (Mayor longitud aumenta el número de posibilidades que se intentarán en un intento de fuerza bruta)
Las opciones 1 y 2 no sirven de nada si el pirata informático obtiene acceso a la forma de hash de la contraseña y al algoritmo de hash.
Editado con la sugerencia del comentario:
La opción 2 no sirve de nada si el pirata informático obtiene acceso a la forma de hash de la contraseña y al algoritmo de hash.
La opción 1 también es inútil si la lentitud se debe en gran parte a la suspensión que puede solucionarse (por ejemplo, si el código fuente del algoritmo hash está disponible, entonces es fácil eliminar la suspensión. Otras opciones son posibles sin el código fuente también)