Хеш-функция

Страницы: <<  <  1 | 2 | 3 | 4  >  >>

прочем, не получите свой старый пароль, поскольку онлайн-сервис на самом деле не хранит пользовательские пароли в виде обычного текста. Вместо этого он хранит их в виде хеш-значений. То есть даже сам сервис не может знать, как в действительности выглядит ваш пароль. Исключение составляют только те случаи, когда пароль очень прост и его хеш-значение широко известно в кругах взломщиков. Таким образом, если вы, воспользовавшись функцией восстановления, вдруг получили старый пароль в открытом виде, то можете быть уверены: используемый вами сервис не хеширует пользовательские пароли, что очень плохо.
Требования, которым хеш в базе должен удовлетворять:
- стойкость к атакам перебора (прямой перебор и перебор по словарю);
- невозможность поиска одинаковых паролей разных пользователей по хешам.

Для выполнения первого требования нужно использовать стойкие хеш-функции.
Для выполнения второго -- к паролю перед хешированием добавляется случайная строка (соль). Таким образом, у двух пользователей с паролем "123456" будут разные соли "соль1" и "соль2", а соответственно и хеш-функции от "123456соль1" и "123456соль2" в базе тоже будут разные.
И соль и сам хеш хранятся в базе данных. То есть получив доступ к СУБД, злоумышленник получает и значения хешей и соли.
Выбираемая хеш-функция должна легко вычисляться и создавать как можно меньше коллизий, т. е. должна равномерно распределять ключи на имеющиеся индексы в таблице. Конечно, нельзя определить, будет ли некоторая конкретная хеш-функция распределять ключи правильно, если эти ключи заранее не известны. Однако, хотя до выбора хеш-функции редко известны сами ключи, некоторые свойства этих ключей, которые влияют на их распределение, обычно известны.

Страницы: <<  <  1 | 2 | 3 | 4  >  >>
Рейтинг
Оцени!
Поделись конспектом: