Для выбора оптимальных параметров функции argon2id следует учитывать несколько факторов:
1. Время на вычисление хэша. Параметр "Time cost" определяет количество проходов, которые выполняются для вычисления хэша. Если вы хотите повысить надежность защиты от брутфорса, можно увеличить этот параметр. Однако необходимо учитывать, что с увеличением Time cost время вычисления будет также увеличиваться. Для определения оптимального значения этого параметра можно провести испытания и оценить время, необходимое для вычисления хэша с разными значениями.
2. Используемая память. Параметр "Memory" определяет количество используемой памяти при вычислении хэша. Чем больше памяти используется, тем более затруднительно проведение атаки с использованием брутфорса. Оптимальное значение этого параметра зависит от доступного объема памяти и конкретных требований к безопасности. При определении оптимального значения можно увеличивать Memory и проводить испытания для оценки времени вычисления и удовлетворяет ли это требованиям.
3. Количество параллельных потоков. Параметр "Threads" определяет количество параллельных потоков, используемых для вычисления хэша. Увеличение количества потоков может значительно ускорить вычисления, но также потребует больше ресурсов процессора. Оптимальное значение этого параметра зависит от доступных ресурсов и требований к производительности. Можно проводить испытания для оценки времени вычисления и выбрать оптимальное значение.
Чтобы определить, достаточны ли заданные параметры для обеспечения надежной защиты от брутфорса, можно провести анализ и оценку времени, необходимого для различных атак на систему. Если время вычисления пароля с использованием заданных параметров оказывается недостаточно, можно увеличить Time cost, Memory или количество потоков до достаточного уровня. Однако это может повлечь за собой большее время вычисления и большую нагрузку на ресурсы системы.