Что означаете «утекла база»?
Это значит что данные содержащиеся в базе получил тот кому они не предназначались.
прошу описать вкратце возможный процесс взлома и как хеширование помогает в данном случае
Хорошо, попробую -
В базе данных некоторого сервиса, например Тостера, хранится информация множества пользователей - сообщения, личные данные вроде почтового адреса и имени пользователя, служебные данные, зачастую в этой же базе хранятся и пароли.
Так вот если злоумышленник умудрился обойти защиту сервера и скопировать себе эту базу - говорят база утекла.
У себя на компьютере злоумышленник может извлечь из базы данных пароли, и зайти на Тостер под любым пользователем, писать сообщения от его имени, и.т.д.
Поэтому пароли в базе данных хранить нельзя! И все нормальные сервисы вроде Тостера не хранят пароли в базе.
Но сервису то нужно как-то аутентифицировать пользователя.
Если в базе хранится пароль - все просто. Пользователь отправил Тостеру пароль, тот проверил, что он совпадает с хранящимся в базе, и все - пользователь подтвержден.
А если пароли хранить нельзя?
Для этого используется хэширование.
В базе данных Тостера хранится не пароль, а хэш пароля - например пользователь Вася создал пароль
qwerty, Тостер вычисляет хэш этого пароля -d8578edf8458ce06fbc5bb76a58c5ca4 и сохраняет его в базу данных.
Для того чтобы зайти на Тостер Вася отправляет ему свой пароль -
qwerty, Тостер вычисляет его хэш и сравнивает хэш с тем что хранится в базе данных. Если они совпадают - пользователь подтвержден.
В итоге пароли в базе не хранятся, и если злоумышленник скопирует базу себе ( база утекла) он не будет знать паролей пользователя. И не сможет под именем Васи зайти на тТостер.
Все что знает злоумышленник это хэш - d8578edf8458ce06fbc5bb76a58c5ca4
Ну вот примерно так если коротко, и очень упрощенно.
Хэширование никак не защищает содержимое базы и не мешает утечке базы - оно защищает от утечки паролей и только.