No passwords! At all!
I would like to add to previous, excellent answers that it's possible to create a login-site which neither demands nor store passwords.
Use case
This is what it would look like when the user wants to login on a password-less site...
- The user enters his/her email adress.
- An email with a login link is sent (much like when one resets a password on a traditional site).
- The user follows the link.
- The website uses the login token in the link to login the user.
- The loginuser is rememberedkept logged in for X days. The login link expires after a few minutes.
- After X days the user is automatically logged out and need to login again.
Basically a "Reset password" function used as login.
Pros
- No password for the user to remember.
- No password stored in the server that can be stolen.
- Can be combined with two-factor-authentication.
Cons
- A new way to login which the user might not be familiar with.
- E-mails might be delayed making a login taking longer than desired.
- Not compatible with password managers.