D'un point de vue de la sécurité, cela n'apporte rien. Si la connexion n'est pas chiffrée, le hash sera connu en sniffant les paquets du client au serveur. Il suffira donc à l'attaquant de récupérer la valeur du hash et de la renvoyer. Si la connexion est chiffrée, cela n'est pas possible (le contenu du paquet n'est pas lisible sans déchiffrement). Mais cela n'apporte pas plus de sécurité que si tu envoyais le mot de passe (vu qu'il sera chiffré durant la communication chiffrée).
L'idée du salt est malheureusement mauvaise utilisée comme ça. En effet, quand le client demandera le salt, celui-ci sera passé en clair. L'attaquant connaitra donc le salt. Le salt n'est utile que si c'est un secret. Or ici, le client aura toutes les informations nécessaires pour le lire (même si envoyé chiffré, il faudra bien le déchiffré). Donc non, le salt comme ça ne protège en rien contre les attaques dictionnaires.
Les avantages de hash coté client sont:
- Le hash est calculé du coté client et pas côté serveur. Ceci permet de soulager le CPU serveur (de pas grand chose, mais si tu es très juste, ça peut aider).
- Le mot de passe ne voyage pas en clair sur le réseau. Si un pirate arrive à voir la valeur du hash, il pourra l'utiliser uniquement sur les autres site qui utilisent le même algorithme de haschage. (et encore, c'est discutable)
En conclusion: ceci n'augementera pas la sécurité de ton site.