Соление хэша MD5 — где хранить соль

Привет, у меня есть вопрос относительно хеширования / соления MD5.

В последнее время я много читал о хешировании и добавлении солей и понимаю, что мне следует использовать разные соли для каждого отдельного пароля и что я не должен использовать что-то вроде имени пользователя, потому что в идеале соль должна быть полностью уникальной. Но чего я не понимаю, так это почему рекомендуется хранить эту соль вместе с паролем в базе данных?

Разве это не плохо, если злоумышленник получит хэш И соль? Я понимаю, что это сложнее для злоумышленника, потому что уникальные соли гарантируют, что он не сможет проверить один вычисленный хеш против всех паролей. Но все же, не лучше ли было бы спрятать часть соли?

Я думал о разделении соли на 2 части. Первая часть, как обычно, хранится в базе данных, вторая (меньшая) часть жестко запрограммирована в моем приложении. Злоумышленнику будет почти невозможно получить полную соль, так как ему придется проникнуть как на сервер приложений, так и на базу данных.

Это хорошее решение? Соль по-прежнему будет уникальной, , но все соли будут заканчиваться одной и той же последовательностью.

5
задан Mario B 26 January 2015 в 09:05
поделиться