Creo que es un buen método para usar cuando se construye algo como un framework, CMS, software de foro, etc., donde no controlas los servidores en los que podría estar instalado. Es decir, SÍ, siempre debe recomendar el uso de SSL para los inicios de sesión y la actividad de inicio de sesión, pero algunos sitios que usan su framework / cms no lo tendrán, por lo que aún podrían beneficiarse de esto.
Como han señalado otros, el beneficio aquí NO es que un ataque MITM no pueda permitir que otra persona inicie sesión en este sitio en particular como usted, sino que ese atacante no podría usar el mismo nombre de usuario / combo de contraseña para iniciar sesión en posiblemente docenas de otros sitios en los que podría tener cuentas.
Un esquema de este tipo debe incluir sal aleatoria o una combinación de sales específicas del sitio y específicas del nombre de usuario, de modo que alguien que obtenga la contraseña no pueda utilizarla para el mismo nombre de usuario en otros sitios (incluso los sitios que usan esquema de hashing idéntico), ni contra otros usuarios del sitio que puedan tener la misma contraseña.
Otros han sugerido que los usuarios deberían crear contraseñas únicas para cada sitio que usan, o usar administradores de contraseñas. Si bien este es un buen consejo en teoría, todos sabemos que es una locura confiar en el mundo real. El porcentaje de usuarios que hacen cualquiera de estas cosas es pequeño y dudo que eso cambie pronto.
Por lo tanto, un hasher de contraseña javascript es lo menos que puede hacer un desarrollador de framework / cms para limitar el daño de alguien que intercepta contraseñas en tránsito (lo cual es fácil en las redes wifi en estos días) si tanto el propietario del sitio como los usuarios finales están siendo negligentes con respecto a la seguridad (que probablemente sean)