今から新規にWebサービスを作るなら、そもそもパスワードは作らせずにメールアドレスで毎回認証させると思う。メールアドレスが盗まれるとログインされる問題はあるけど、そのレベルの人にこそパスワードを作らせるわけにはいかないので一番現実的だと思う。
金融系だとメールアドレスアカウントが盗まれているリスクが無視できないのでSMS認証が広く使われているけど、SMSの奪取は海外だと一般的で、日本でも通信会社によっては脆弱で実際事故があったわけで、しかもSMSは日本だとめっちゃ高い(1通数円程度)ので、そこまで価値があるとは思わない