Мне нужно генерировать криптографически сильные случайные числа и байтовые массивы. Для этой цели я использую класс Java SecureRandom
. Но я не уверен, чтобы выбрать алгоритм PRNG с точки зрения их криптографической силы.
Какой из следующих экземпляров генерирует более непредсказуемые числа? Или они равны?
SecureRandom nativePrng = SecureRandom.getInstance("NativePRNG")
SecureRandom sha1Prng = SecureRandom.getInstance("SHA1PRNG")
Кроме того, мы можем сгенерировать эти экземпляры с помощью поставщика "SUN" (например, SecureRandom.getInstance("SHA1PRNG", "SUN")
). Это имеет значение?
Спасибо заранее.