Я слышал, что единственная цель соли состоит в том, чтобы предотвращать атаки радужного стола, но наверняка она должна иметь большую ценность, чем эта? Разве это не помешает атаке по словарю? А как насчет грубой силы, будет ли соль здесь полезной? И не могли бы вы объяснить, почему, пожалуйста?
Во-вторых, предположим, у меня был алгоритм, который брал микротайм, 128-символьную соль и случайное число от 1 до 10 миллиардов и складывал их вместе. Будет ли это обеспечить высокий уровень безопасности? Ибо даже если злоумышленник знал одну из этих деталей, мне кажется, что вычислить остальное все равно будет невозможно в вычислительном отношении. Правда ли, что?
Спасибо
Ben
Редактировать: Чтобы уточнить, злоумышленник не имеет доступа к алгоритму хеширования, поэтому он не может спамить какую-либо информацию в системе. Все, что у них есть, это хеш, и они должны выяснить, как он был скомпилирован. Конечно, даже если бы они знали, как генерируется хэш, попытка перебора всех комбинаций длинной солью сделала бы это нереальным?
Кроме того, хэш не состоит из пароля пользователя или имени пользователя, это просто случайный набор символов, используемых для аутентификации. Таким образом, соль и случайное число не нужно хранить, только полученный хеш. В этом случае вышеприведенная система, представленная в чем-то похожем на приведенный ниже код, будет хорошей системой для предотвращения возможности злоумышленнику реально угадать, каким может быть хеш пользователя?
$salt = "some random characters I made up";
hash('sha256', microtime(true).$salt.mt_rand(1000,9999));
Я знаю, что это только 1000-9999 вместо миллиардов, упомянутых выше.
Еще раз спасибо.