Spec-Zone.ru › OpenJDK 24

Класс SecureRandom

java.lang.Object
java.util.Random
java.security.SecureRandom
Все реализованные интерфейсы:
Serializable, RandomGenerator
public class SecureRandom extends Random
Этот класс предоставляет криптографически стойкий генератор псевдослучайных чисел (RNG).

Криптографически стойкий генератор псевдослучайных чисел минимально соответствует статистическим тестам генераторов псевдослучайных чисел, указанным в FIPS 140-2, Требования безопасности к криптографическим модулям, раздел 4.9.1. Кроме того, SecureRandom должен генерировать недетерминированный выход. Поэтому любой материал, используемый для инициализации объекта SecureRandom, должен быть непредсказуемым, а все последовательности SecureRandom вывода должны быть криптографически стойкими, как описано в RFC 4086: Требования к случайности для безопасности.

Многие реализации SecureRandom представляют собой псевдогенератор псевдослучайных чисел (ПГПЧ, также известный как генератор детерминированных случайных бит), что означает, что они используют детерминированный алгоритм для получения псевдослучайной последовательности из случайного значения. Другие реализации могут генерировать истинные случайные числа, а еще другие могут использовать комбинацию обоих подходов.

Вызывающий получает экземпляр SecureRandom через конструктор без аргументов или один из методов getInstance. Например:

 SecureRandom r1 = new SecureRandom();
 SecureRandom r2 = SecureRandom.getInstance("NativePRNG");
 SecureRandom r3 = SecureRandom.getInstance("DRBG",
         DrbgParameters.instantiation(128, RESEED_ONLY, null));

Третье утверждение выше возвращает объект SecureRandom определенного алгоритма, поддерживающего определенные параметры инициализации. Эффективные параметры инициализации реализации должны соответствовать этому минимальному запросу, но не обязательно быть такими же. Например, даже если запрос не требует определенной функции, фактическая инициализация может обеспечить эту функцию. Реализация может отложить инициализацию объекта SecureRandom до момента фактического использования, но эффективные параметры инициализации должны быть определены сразу после его создания, и getParameters() всегда должен возвращать тот же результат без изменений.

Типичные вызывающие методы SecureRandom вызывают следующие методы для получения случайных байтов:

 SecureRandom random = new SecureRandom();
 byte[] bytes = new byte[20];
 random.nextBytes(bytes);

Вызывающие также могут вызвать метод generateSeed(int) для генерации заданного количества байтов семян (например, для инициализации других генераторов псевдослучайных чисел):

 byte[] seed = random.generateSeed(20);

Недавно созданный объект ПГПЧ SecureRandom не инициализирован (за исключением случаев, когда он создан с помощью SecureRandom(byte[])). Первый вызов nextBytes заставит его инициализировать себя из специфичного для реализации источника энтропии. Эта автоинициализация не произойдет, если ранее был вызван setSeed.

Объект SecureRandom можно переинициализировать в любое время, вызвав метод reseed или setSeed. Метод reseed считывает входные данные энтропии из источника энтропии для переинициализации себя. Метод setSeed требует от вызывающей стороны предоставить семя.

Обратите внимание, что reseed может не поддерживаться всеми реализациями SecureRandom.

Некоторые реализации SecureRandom могут принимать параметр SecureRandomParameters в своих методах nextBytes(byte[], SecureRandomParameters) и reseed(SecureRandomParameters) для дальнейшего управления поведением этих методов.

Примечание: В зависимости от реализации методы generateSeed, reseed и nextBytes могут блокироваться при сборе энтропии, например, если источником энтропии является /dev/random на различных системах Unix.

Безопасность потоков

Объекты SecureRandom безопасны для использования в нескольких потоках.
Требования к реализации:
Провайдер сервиса SecureRandom может заявить о своей потокобезопасности, установив атрибут поставщика сервиса атрибут поставщика сервиса "ThreadSafe" в значение "true" при регистрации провайдера. В противном случае этот класс будет синхронизировать доступ к следующим методам реализации SecureRandomSpi:
  • SecureRandomSpi.engineSetSeed(byte[])
  • SecureRandomSpi.engineNextBytes(byte[])
  • SecureRandomSpi.engineNextBytes(byte[], SecureRandomParameters)
  • SecureRandomSpi.engineGenerateSeed(int)
  • SecureRandomSpi.engineReseed(SecureRandomParameters)
С:
1.1
Внешние спецификации
  • RFC 4086: Требования к случайности для безопасности
  • Требования безопасности к криптографическим модулям
См. также:
  • SecureRandomSpi
  • Random
  • Сериализованная форма

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.random.RandomGenerator

RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator

Краткое описание конструкторов

SecureRandom()
SecureRandom(byte[] seed)
SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
Модификатор Конструктор Описание
Создаёт генератор псевдослучайных чисел (RNG) с защитой, реализующий по умолчанию алгоритм генерации псевдослучайных чисел.
Создаёт генератор псевдослучайных чисел (RNG) с защитой, реализующий по умолчанию алгоритм генерации псевдослучайных чисел.
protected
Создаёт объект SecureRandom.

Краткое описание методов

Модификатор и тип Метод Описание
byte[] generateSeed(int numBytes)
Возвращает заданное количество байтов-семян, вычисленных с использованием алгоритма генерации семян, используемого этим классом для инициализации.
String getAlgorithm()
Возвращает имя алгоритма, реализованного этим объектом SecureRandom.
static SecureRandom getInstance(String algorithm)
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG).
static SecureRandom getInstance(String algorithm, String provider)
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG).
static SecureRandom getInstance(String algorithm, Provider provider)
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG).
static SecureRandom getInstance(String algorithm, SecureRandomParameters params)
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG) и поддерживающий указанный запрос SecureRandomParameters.
static SecureRandom getInstance(String algorithm, SecureRandomParameters params, String provider)
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG) и поддерживающий указанный запрос SecureRandomParameters.
static SecureRandom getInstance(String algorithm, SecureRandomParameters params, Provider provider)
Возвращает объект SecureRandom, который был выбран с использованием алгоритмов/поставщиков, указанных в свойстве securerandom.strongAlgorithms Security.
static SecureRandom getInstanceStrong()
Возвращает эффективные параметры SecureRandomParameters для этого объекта SecureRandom.
SecureRandomParameters getParameters()
Возвращает поставщика этого объекта SecureRandom.
final Provider getProvider()
Возвращает заданное количество байтов-семян, вычисленных с использованием алгоритма генерации семян, используемого этим классом для инициализации.
static byte[] getSeed(int numBytes)
Генерирует целое число, содержащее заданное пользователем количество псевдослучайных бит (справа, с ведущими нулями).
protected final int next(int numBits)
Генерирует заданное пользователем количество случайных байтов.
void nextBytes(byte[] bytes)
Генерирует заданное пользователем количество случайных байтов с дополнительными параметрами.
void nextBytes(byte[] bytes, SecureRandomParameters params)
Переинициализирует этот объект SecureRandom с энтропией, считанной из его источника энтропии.
void reseed()
Переинициализирует этот объект SecureRandom с энтропией, считанной из его источника энтропии с дополнительными параметрами.
void reseed(SecureRandomParameters params)
Переинициализирует этот объект с заданным семеном.
void setSeed(byte[] seed)
Переинициализирует этот случайный объект, используя восемь байтов, содержащихся в заданном long seed.
void setSeed(long seed)
Возвращает удобочитаемую строку, представляющую этот объект SecureRandom.

Методы, объявленные в классе java.util.Random

doubles, doubles, doubles, doubles, from, ints, ints, ints, ints, longs, longs, longs, longs, nextBoolean, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.util.random.RandomGenerator

equiDoubles, isDeprecated, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextGaussian, nextInt, nextLong, nextLong

Подробное описание конструкторов

SecureRandom

public SecureRandom()
Создаёт генератор псевдослучайных чисел (RNG), реализующий алгоритм по умолчанию.

Этот конструктор перебирает список зарегистрированных поставщиков безопасности, начиная с самого предпочтительного. Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от первого поставщика, поддерживающего алгоритм SecureRandom (RNG). Если ни один из поставщиков не поддерживает алгоритм RNG, возвращается реализация по умолчанию, специфичная для реализации.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

См. раздел SecureRandom в Спецификации имен стандартных алгоритмов Java Security для получения информации о стандартных именах алгоритмов RNG.

SecureRandom

public SecureRandom(byte[] seed)
Создаёт генератор псевдослучайных чисел (RNG), реализующий алгоритм по умолчанию. Экземпляр SecureRandom инициализируется указанными байтами-семенами.

Этот конструктор перебирает список зарегистрированных поставщиков безопасности, начиная с самого предпочтительного. Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от первого поставщика, поддерживающего алгоритм SecureRandom (RNG). Если ни один из поставщиков не поддерживает алгоритм RNG, возвращается реализация по умолчанию, специфичная для реализации.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

См. раздел SecureRandom в Спецификации имен стандартных алгоритмов Java Security для получения информации о стандартных именах алгоритмов RNG.

Параметры:
seed - семя.
Исключения:
NullPointerException - если seed является null

SecureRandom

protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
Создаёт объект SecureRandom.
Параметры:
secureRandomSpi - реализация SecureRandom.
provider - поставщик.

Подробное описание методов

getInstance

public static SecureRandom getInstance(String algorithm) throws NoSuchAlgorithmException
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG).

Этот метод перебирает список зарегистрированных поставщиков безопасности, начиная с самого предпочтительного. Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от первого поставщика, поддерживающего указанный алгоритм.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Примечание о реализации:
Реализация JDK Reference Implementation дополнительно использует свойство jdk.security.provider.preferred Security для определения порядка предпочтительных поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
algorithm - имя алгоритма RNG. См. раздел SecureRandom в Спецификации имен стандартных алгоритмов Java Security для получения информации о стандартных именах алгоритмов RNG.
Возвращает:
новый объект SecureRandom
Исключения:
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию SecureRandomSpi для указанного алгоритма
NullPointerException - если algorithm является null
С момента:
1.2
См. также:
  • Provider

getInstance

public static SecureRandom getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG).

Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Параметры:
algorithm - имя алгоритма RNG. См. раздел SecureRandom в Спецификации имен стандартных алгоритмов Java Security для получения информации о стандартных именах алгоритмов RNG.
provider - имя поставщика.
Возвращает:
новый объект SecureRandom
Исключения:
IllegalArgumentException - если имя поставщика является null или пустым
NoSuchAlgorithmException - если реализация SecureRandomSpi для указанного алгоритма недоступна от указанного поставщика
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если algorithm является null
С момента:
1.2
См. также:
  • Provider

getInstance

public static SecureRandom getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG).

Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от указанного поставщика. Обратите внимание, что указанному поставщику не обязательно быть зарегистрированным в списке поставщиков.

Параметры:
algorithm - имя алгоритма RNG. См. раздел SecureRandom в Спецификации имен стандартных алгоритмов Java Security для получения информации о стандартных именах алгоритмов RNG.
provider - поставщик.
Возвращает:
новый объект SecureRandom
Исключения:
IllegalArgumentException - если указанный поставщик является null
NoSuchAlgorithmException - если реализация SecureRandomSpi для указанного алгоритма недоступна от указанного объекта Provider
NullPointerException - если algorithm является null
С момента:
1.4
См. также:
  • Provider

getInstance

public static SecureRandom getInstance(String algorithm, SecureRandomParameters params) throws NoSuchAlgorithmException
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG) и поддерживающий указанный запрос SecureRandomParameters.

Этот метод перебирает список зарегистрированных поставщиков безопасности, начиная с самого предпочтительного. Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от первого поставщика, который поддерживает указанный алгоритм и указанный SecureRandomParameters.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Примечание о реализации:
Реализация JDK Reference Implementation дополнительно использует свойство jdk.security.provider.preferred для определения порядка предпочтительных поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
algorithm - имя алгоритма RNG. См. раздел SecureRandom в Спецификации имен стандартных алгоритмов Java Security для получения информации о стандартных именах алгоритмов RNG.
params - SecureRandomParameters, который должен поддерживать вновь созданный объект SecureRandom.
Возвращает:
новый объект SecureRandom
Исключения:
IllegalArgumentException - если указанный params является null
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию SecureRandomSpi для указанного алгоритма и параметров
NullPointerException - если algorithm является null
С момента:
9
См. также:
  • Provider

getInstance

public static SecureRandom getInstance(String algorithm, SecureRandomParameters params, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG) и поддерживающий указанный запрос SecureRandomParameters.

Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Parameters:
algorithm - имя алгоритма RNG. См. раздел SecureRandom в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах алгоритмов RNG.
params - SecureRandomParameters, которое должен поддерживать вновь созданный объект SecureRandom.
provider - имя поставщика.
Returns:
новый объект SecureRandom
Throws:
IllegalArgumentException - если имя поставщика null или пустое, или params null
NoSuchAlgorithmException - если указанный поставщик не поддерживает реализацию SecureRandomSpi для указанного алгоритма и параметров
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если algorithm является null
Since:
9
See Also:
  • Provider

getInstance

public static SecureRandom getInstance(String algorithm, SecureRandomParameters params, Provider provider) throws NoSuchAlgorithmException
Возвращает объект SecureRandom, реализующий указанный алгоритм генератора псевдослучайных чисел (RNG) и поддерживающий указанный запрос SecureRandomParameters.

Возвращается новый объект SecureRandom, инкапсулирующий реализацию SecureRandomSpi от указанного поставщика. Обратите внимание, что указанный поставщик не обязательно должен быть зарегистрирован в списке поставщиков.

Parameters:
algorithm - имя алгоритма RNG. См. раздел SecureRandom в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах алгоритмов RNG.
params - SecureRandomParameters, которое должен поддерживать вновь созданный объект SecureRandom.
provider - поставщик.
Returns:
новый объект SecureRandom
Throws:
IllegalArgumentException - если указанный поставщик или params null
NoSuchAlgorithmException - если указанный поставщик не поддерживает реализацию SecureRandomSpi для указанного алгоритма и параметров
NullPointerException - если algorithm является null
Since:
9
See Also:
  • Provider

getProvider

public final Provider getProvider()
Возвращает поставщика этого объекта SecureRandom.
Returns:
поставщик этого объекта SecureRandom.

getAlgorithm

public String getAlgorithm()
Возвращает имя алгоритма, реализованного этим объектом SecureRandom.
Returns:
имя алгоритма или unknown, если имя алгоритма определить невозможно.
Since:
1.5

toString

public String toString()
Возвращает удобочитаемое строковое представление этого объекта SecureRandom.
Overrides:
toString в классе Object
Returns:
строковое представление

getParameters

public SecureRandomParameters getParameters()
Возвращает эффективные параметры SecureRandomParameters для этого экземпляра SecureRandom.

Возвращаемое значение может отличаться от объекта SecureRandomParameters, переданного методу getInstance, но не может изменяться в течение жизненного цикла этого объекта SecureRandom.

Вызывающий код может использовать возвращаемое значение, чтобы определить, какие функции поддерживает этот объект SecureRandom.

Returns:
эффективные параметры SecureRandomParameters, или null, если параметры не использовались.
Since:
9
See Also:
  • SecureRandomSpi

setSeed

public void setSeed(byte[] seed)
Перезапускает этот объект случайных чисел с заданным seed. Seed дополняет, а не заменяет, существующий seed. Таким образом, повторные вызовы гарантированно не уменьшат случайность.

PRNG SecureRandom не будет инициализироваться автоматически, если setSeed вызывается до вызова nextBytes или reseed. Вызывающий код должен убедиться, что аргумент seed содержит достаточно энтропии для безопасности этого объекта SecureRandom.

Parameters:
seed - seed.
Throws:
NullPointerException - если seed является null
See Also:
  • getSeed(int)

setSeed

public void setSeed(long seed)
Перезапускает этот объект случайных чисел, используя восемь байтов, содержащихся в заданном long seed. Заданный seed дополняет, а не заменяет, существующий seed. Таким образом, повторные вызовы гарантированно не уменьшат случайность.

PRNG SecureRandom не будет инициализироваться автоматически, если setSeed вызывается до вызова nextBytes или reseed. Вызывающий код должен убедиться, что аргумент seed содержит достаточно энтропии для безопасности этого объекта SecureRandom.

Этот метод определен для совместимости с java.util.Random.

Overrides:
setSeed в классе Random
Parameters:
seed - seed.
See Also:
  • getSeed(int)

nextBytes

public void nextBytes(byte[] bytes)
Генерирует указанное количество случайных байтов.
Specified by:
nextBytes в интерфейсе RandomGenerator
Overrides:
nextBytes в классе Random
Parameters:
bytes - массив, который будет заполнен случайными байтами.
Throws:
NullPointerException - если bytes является null

nextBytes

public void nextBytes(byte[] bytes, SecureRandomParameters params)
Генерирует указанное количество случайных байтов с дополнительными параметрами.
Parameters:
bytes - массив, который будет заполнен случайными байтами
params - дополнительные параметры
Throws:
NullPointerException - если bytes является null
UnsupportedOperationException - если реализация основного поставщика не переопределила этот метод
IllegalArgumentException - если params является null, недопустимым или неподдерживаемым этим объектом SecureRandom
Since:
9

next

protected final int next(int numBits)
Генерирует целое число, содержащее указанное количество псевдослучайных бит (справа, с ведущими нулями). Этот метод переопределяет метод java.util.Random и служит источником случайных бит для всех методов, унаследованных от этого класса (например, nextInt, nextLong и nextFloat).
Overrides:
next в классе Random
Parameters:
numBits - количество генерируемых псевдослучайных бит, где 0 <= numBits <= 32.
Returns:
целое число, содержащее указанное количество псевдослучайных бит (справа, с ведущими нулями).

getSeed

public static byte[] getSeed(int numBytes)
Возвращает заданное количество байтов seed, вычисленных с помощью алгоритма генерации seed, который использует этот класс для инициализации. Этот вызов может быть использован для инициализации других генераторов псевдослучайных чисел.

Этот метод включён только для обратной совместимости. Пользователю рекомендуется использовать один из альтернативных getInstance методов для получения объекта SecureRandom, а затем вызвать метод generateSeed для получения байтов seed из этого объекта.

Параметры:
numBytes - количество байтов seed для генерации.
Возвращает:
байты seed.
Исключения:
IllegalArgumentException - если numBytes отрицательно
См. также:
  • setSeed(byte[])

generateSeed

public byte[] generateSeed(int numBytes)
Возвращает заданное количество байтов seed, вычисленных с помощью алгоритма генерации seed, который использует этот класс для инициализации. Этот вызов может быть использован для инициализации других генераторов псевдослучайных чисел.
Параметры:
numBytes - количество байтов seed для генерации.
Возвращает:
байты seed.
Исключения:
IllegalArgumentException - если numBytes отрицательно

getInstanceStrong

public static SecureRandom getInstanceStrong() throws NoSuchAlgorithmException
Возвращает объект SecureRandom, выбранный с использованием алгоритмов/провайдеров, указанных в свойстве securerandom.strongAlgorithms Security.

В некоторых ситуациях требуются сильные случайные значения, например, при создании высокозначимых/долгоживущих секретов, таких как ключи RSA public/private. Для помощи приложениям в выборе подходящей реализации сильного SecureRandom, дистрибутивы Java включают список известных реализаций сильных SecureRandom в свойстве securerandom.strongAlgorithms Security.

Каждая реализация платформы Java должна поддерживать как минимум одну реализацию сильного SecureRandom.

Возвращает:
реализация сильного SecureRandom, указанная свойством securerandom.strongAlgorithms Security
Исключения:
NoSuchAlgorithmException - если алгоритм недоступен
С:
1.8
См. также:
  • Security.getProperty(String)

reseed

public void reseed()
Переинициализирует этот SecureRandom с помощью входных данных энтропии, считанных из его источника энтропии.
Исключения:
UnsupportedOperationException - если реализация базового провайдера не переопределила этот метод.
С:
9

reseed

public void reseed(SecureRandomParameters params)
Переинициализирует этот SecureRandom с помощью входных данных энтропии, считанных из его источника энтропии с дополнительными параметрами.

Обратите внимание, что энтропия извлекается из источника энтропии. Хотя некоторые данные в params могут содержать энтропию, её основное назначение – обеспечение разнообразия.

Параметры:
params - дополнительные параметры
Исключения:
UnsupportedOperationException - если реализация базового провайдера не переопределила этот метод.
IllegalArgumentException - если params является null, некорректным или неподдерживаемым этим SecureRandom
С:
9

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/SecureRandom.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API