Ключ к лучшей безопасности, я думаю, заключается в использовании динамических солей. Это означает, что вы генерируете случайную строку для каждого нового пользователя и используете эту строку для засоления хеша. Конечно, вам нужно хранить эту соль в базе данных, чтобы позже можно было проверить пароль (я никоим образом не шифрую его).