Si descarta captchas, prueba límites, bloqueos, etcétera... entonces sí. Solo tienes que aplicar fuerza bruta a la cadena de texto sin formato.
Sin embargo, eso lleva tiempo - como mínimo, está limitado por la velocidad a la que el servidor responderá a las solicitudes de inicio de sesión. Incluso si el desarrollador no agrega ninguna medida para evitar la fuerza bruta, el servidor solo puede pasar por el proceso de encriptación + verificación tan rápido y solo puede manejar tantas solicitudes paralelas.
Dicho esto, por eso es importante
- Como usuario, use una contraseña segura y difícil de forzar
- Como desarrollador, tenga las medidas adecuadas para evitar la fuerza bruta de su proceso de inicio de sesión
Las contraseñas de hashing y salado no son para proteger contra las personas que fuerzan bruscamente el proceso de inicio de sesión natural (hay otras cosas que protegen contra eso). En cambio, son para proteger contra un posible compromiso del almacenamiento de contraseñas (por ejemplo, alguien volcando el contenido de la base de datos).
Tanto el hash como el salado sirven para disminuir la velocidad en el que alguien con acceso a las contraseñas almacenadas puede recuperar la cadena de texto sin formato que necesitaría para poder pasar por el proceso de inicio de sesión natural (de su sitio u otros sitios , dado que las contraseñas se comparten comúnmente entre sitios) sin activar las medidas de seguridad contra la fuerza bruta.