Я думаю, вы неправильно понимаете понятие соли. Соли не предотвращают и не замедляют словарные и грубые атаки .
Весь смысл использования солей состоит в том, чтобы избежать возможности того, что кто-то уже предварительно вычислил атака по словарю / перебором для хэшей паролей (например, с использованием радужных таблиц).Таким образом, он должен быть достаточно длинным, чтобы исключить возможность того, что такая таблица уже существует для конкретной соли.
Учитывая типичный размер такого радужного стола, крайне маловероятно, что кто-то уже предварительно вычислил такойтаблицы для солей даже небольшого размера, таких как 8 байтов или около того (рассмотрим количество возможных солей: 256^8 = 18446744073709551616
).Предпосылка, конечно, заключается в том, что соли генерируются случайным образом и что вы не используете одно и то же значение соли несколько раз.Конечно, 64 байта не повредят, в этом нет ничего плохого.
Однако, если вы хотите, чтобы атаки методом перебора или словаря были неосуществимыми, это не поможет вам использовать более длинную соль.Вместо этого заставьте своих пользователей выбирать надежные пароли и рассмотрите возможность использования растяжения ключа .