Стандартная задержка для достижения цели, как вы сказали, составляет 100 мс.Время, необходимое для вычисления хэша с PBKDF2, пропорционально количеству итераций.Имея это в виду, вы, вероятно, могли бы просто удвоить количество итераций, чтобы получить задержку около 100 мс.
Я предлагаю не допускать изменения количества итераций, по крайней мере, в качестве аргумента функции.Изменение количества итераций в будущем по мере продвижения оборудования является хорошей идеей, но необходимо убедиться, что используемый счетчик итераций отмечен в произведенном хэше.
Вместо этого я бы использовал постоянное значение для счетчика итераций.:
const int ITERATION_COUNT = 20000;
И использование:
public static byte[] GetPDKDF2(string password, int saltSize)
{
var pdf = new Rfc2898DeriveBytes(password, saltSize, ITERATION_COUNT);
return pdf.GetBytes(20);
}