You could hash it twice (once on the server once on the client) I suppose, but I'm not entirely sure what the benefit of that would be.
I'm imagining we have a system where a client signs, and timestamps, a hash that's sent meaning old hashes wouldn't be accepted and reducing hash "replay" possibilities ... but now I'm amateurishly trying to design a crypto scheme ... never a good idea.
How would the server even verify the hash, then?
My guess is that this isn't popular because of the added client side complexity.
I'm also curious if anyone has considered or implemented this idea.
Although I think this still improves the situation if the password is reused. I.E. I can't use the logged hashed password on other sites.
In case we are talking about multi-tier applications where probably LDAP or AD is used to store the credentials then the back end is the one responsible for doing the hashing.
Ideally all users would change their passwords to something completely different in the event of a leak. But realistically this just doesn't happen -- some users refuse to change their passwords, and others just change one character. If only the client-side hash is leaked rather than the raw password, you can greatly mitigate the damage by just changing the salt at the next login.