In the end, I'd probably prefer something like SRP
Not if the server generates a unique ID for each attempt, and that ID must be used in hashing. It can be as simple as a timestamp.
Reply on news.ycombinator.com