how to write a secure login form?
I don't want to send the password in plaintext, I don't want to store the password in plaintext on the server, and I also don't want to use SSL. Now how do I verify passwords?
A) If I store a hash of the password on the server, the client must send the password in plaintext, so the server can generate a hash of it to compare with the information it has. Of course I can't let the client send a hashed password, since that means the hashed password on the server actually becomes a plaintext password!
B) I could let the server send the client a random string, which the client then combines with the password and generates a hash of this combination, which is sent back to the server. However, the server can only check this if it also has the password in plaintext (to execute the same steps as the client, then compare the results). Also, the password needs to be sent in plaintext when the account is created.
Does anyone have better ideas?