Все пароли хранятся в захешированном виде.
Пароль нельзя хранить в захешированном виде.
Либо вы храните пароль, либо вы не храните пароль.
В вашем случае пароль не хранится, хранится хэш.
Насколько надежен этот хеш?
Смотря что подразумевать по надежностью.
Реально ли получить исходный пароль зная хеш?
Нет, это невозможно в принципе. Как бы ни хранился пароль, его все равно возможно подобрать
Поэтому его и не хранят, хранят его хэш.
Я хочу сделать так, что после 3-х неверных попыток пароль можно было ввести спусти 5 минут.
Это нормальная практика, только 5минут пожалуй много, начать стоит с 10-15секунд.
Но как это реализовать?
Хранить время попыток входа - удачных и неудачных. При попытке входа считать количество времени прошедшее с последней попытки, и если она неуспешна, блокровать.
Я подумал начать изучать криптографию, чтобы улучшить защиту и хранить не хеш пароля, а хеш шифра пароля.
Когда изучите криптографию, поймете что это чушь.
Постараюсь объяснить -
7f1faa82a84c11d68e301cd04680609d - Это хэш фильма Аватар в FullHD качестве, весом 50Гигабайт.
Вы сможете из этих цифр восстановить 50гигабайт видео?
Еще пример -
Вот допустим пароль 123456789
Вот алгоритм хэширования- считаем количество цифр.
У вас получится восстановить пароль 123456789 зная что его хэш равен 9 ?
Это конечно очень примитивный алгоритм хэширования, и на практике использовать его нельзя из-за большого количества коллизий, но тем не менее это хэширование.