Каждый узел должен содержать целый файл. В этом случае локальная файловая система будет логически неотличима от HDFS в отношении этого файла.
Да это безопасно.
исследование Кода java.util.Random
шоу, который ints()
создает spliterator, который использует internalNextInt(...)
для генерации случайных целых чисел. Это в свою очередь звонит nextInt()
на this
. В случае java.security.SecureRandom
, nextInt()
переопределяется для генерации "безопасного" случайного числа <глоток> 1 глоток>.
можно подтвердить это для себя путем рассмотрения исходного кода.
<час><глоток> 1 - Конечно, на самом деле не имеет смысла называть целое число или последовательность целых чисел "безопасными". И существуют ситуации, где SecureRandom не может иметь свойств, которых Вы требуете. (Это зависит от фактического RNG или реализации PRNG, используемой классом, качеством предоставленного семени или системы, обеспеченной энтропийный источник, и так далее.), Но SecureRandom:: ints () генерирует последовательность целых чисел, которая имеет те же свойства, как будто Вы сделали последовательность SecureRandom:: nextInt () обращается к тому же объекту. Если последняя последовательность подходит в Ваших целях (независимо от того, что они), затем так первый.
Да, SecureRandom
обеспечивает криптографически сильный генератор случайных чисел (RNG).
Одним важным фактором для безопасного RNG является семя.
Поэтому любой материал семени, переданный объекту SecureRandom, должен быть непредсказуемым, и все выходные последовательности SecureRandom должны быть криптографически сильными, как описано в RFC 4086: Требования Случайности для безопасности.
Разрешение и использование это. Если Вы интересуетесь деталями, считайте JavaDoc, который описывает различные подходы, используемые реализациями.
Random.ints()
метод, который возвращается IntStream
. IntStream
не безопасно и не небезопасен: это - поток чисел.
"безопасность" последовательности ints, возвращенного методом, зависит от реализации метода. SecureRandom
генерирует его "случайные" значения более надежно, чем Random
. Они совместно используют тот же API, и таким образом можно использовать любого в данном контексте в зависимости от требований.
Так, факт, который это наследовало от небезопасного класса, не важен безопасности: Вы можете довольно доверительный, что SecureRandom
класс так безопасен, как в документации говорится, что это.
Рассматривают аналогию с HashSet
: это не делает гарантий итератора, заказывая ; однако, LinkedHashSet
, подкласс HashSet
делает упорядочивание итератора гарантии. Гарантия LinkedHashSet
согласовывается с гарантией [1 110], потому что определенное упорядочивание является одним из возможных упорядочиваний, которые не могли наблюдаться с "никаким гарантируемым упорядочиванием" (в конце концов, необходимо возвратить элементы в [1 119] приблизительно [1 119] порядок).
Точно так же Random
не делает гарантии о безопасности последовательности ints возвращенными; SecureRandom
делает более сильные гарантии. Но нет никакой причины, почему последовательность ints от SecureRandom
не могла также быть возвращена Random
по совпадению.