Как правильно хранить пароли?
php.net/manual/ru/book.password.php
https://gist.github.com/nikic/3707231
habrahabr.ru/post/194972
хранить в бд как строки.
В идеале ни сами пароли, ни какие либо ключевые последовательности вообще хранить не нужно нигде.
По возможности лучше не хранить пароли в открытом виде. 
А приемлемым всё еще является хранение не самого пароля, а его одностороннего преобразования (hash) со всякими полезными нагрузками в виде "соли". Весь прикол в этом преобразовании в том, что самого пароля, то и нет. Есть лишь какая-то последовательность символов которую никак не преобразовать обратно. 
Таким образом всё сводится к тому, что пароль в чистом виде по сети не передавался, а передавались результаты преобразования. В итоге при получении на сервере, к примеру, запроса авторизации, сверяется именно преобразованная последователь. Вот где-то тут и пропадает необходимость действия по восстановлению чистых паролей.