Простой хеш пароля, или даже (соль + пароль) обычно не соответствует.
см.:
и
http://gom-jabbar.org/articles/2008/12/03/why-you-should-use-bcrypt-to-store-your-passwords
Оба рекомендуют bcrypt алгоритмы. Бесплатные реализации могут быть найдены онлайн для большинства популярных языков.
Использование нескольких ядер / машин должно быть простым, если вы просто используете параллельные независимые репликации , но помните об общих недостатках генераторов случайных чисел (например, если в качестве начального значения используется текущее время, порождение многих процессов с одним ГСЧ для каждого может привести к коррелированным случайным числам, что приведет к неверным результатам - см., например, этот документ )
Возможно, вы захотите использовать сокращение дисперсии до , чтобы уменьшить количество необходимых повторений , то есть уменьшить размер требуемой выборки.Более продвинутые методы уменьшения дисперсии можно найти во многих учебниках, например, в этом .
Выборка из латинского гиперкуба легко применяется и имеет большое влияние на результаты. Обычно вы берете образец латинского гиперкуба из равномерного распределения (например, используя randomLHS () в пакете lhs) и преобразуете его в желаемое распределение, используя, например, qnorm (uniformsample).
Предварительно распределите векторы!
> nsims <- 10000
> n <- 100
>
> system.time({
res <- NULL
for (i in 1:nsims) {
res <- c(res,mean(rnorm(n)))
}
})
user system elapsed
0.761 0.015 0.783
>
> system.time({
res <- rep(NA, nsims)
for (i in 1:nsims) {
res[i] <- mean(rnorm(n))
}
})
user system elapsed
0.485 0.001 0.488
>