и как хеширование помогает в данном случае
Все очень просто.
Вы стырили чей-то кейс с документами. Открываете его, перебираете бумаги и среди них находите металлическую коробочку, в которой что-то шуршит, но ключей к ней у Вас нет. Как ее открыть? Либо перебором имеющихся ключей и попыткой снять отпечаток у хозяина (подбор паролей и социальная инженерия) либо попыткой сломать ее, распилить, раздавить (прямой перебор). Подбор паролей сработает (может быть) если владелец лох, а возможность сломать оценивается прочностью металла (стойкостью шифра).
Пароль не хранится в БД. В БД хранится некий цифровой код, который получается из строки пароля с помощью неких вычислений - это собственно и есть хэширование - получение однозначной связи между текстом и цифровым кодом (хэшем), причем обратной связи
НЕТ. То есть, по тексту можно получить хэш, но по хэшу текст получить
невозможно (если это не так, значит алгоритм взломан).
Для проверки пароля считается хэш от полученной от пользователя строки, если совпали - все, вуаля.
Хотя утечка БД с открытыми данными даже и без паролей - крайне пренеприятная вещь.