Пароли должны быть хэшированы, а хэши должны храниться в базе данных.Однако SHA * и MD5 - слишком быстрые алгоритмы хеширования, чтобы использовать их для хеширования паролей.Для хэширования паролей в идеале вам нужно что-то гораздо более медленное, которое не поддается атакам грубой силы / радужных таблиц.
Вы можете быть уверены, что хешируйте пароль 1000 раз, прежде чем сохранять хэш, чтобы сделать его временными требует больших вычислительных ресурсов, но зачем это делать, когда у вас есть алгоритмы, такие как bcrypt, которые выполняют эту работу за вас.
Вы должны использовать bcrypt для хеширования своего пароля.Подробнее об этом читайте в http://codahale.com/how-to-safely-store-a-password/
В bcrypt, поскольку соль добавляется в хеш - вам даже не нужны два столбца 'password_hash' и 'salt' в таблице.Просто 'password_hash'.Чем меньше беспорядка, тем лучше.