Spec-Zone.ru › OpenJDK 25

Класс SecureRandom

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

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

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

Вызывающий код получает экземпляр 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);

Созданный объект PRNG 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: требования к случайности для обеспечения безопасности
  • Требования безопасности к криптографическим модулям
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • SecureRandomSpi
  • Random
  • Форма сериализации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SecureRandom

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

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

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

Информацию о стандартных именах алгоритмов RNG см. в разделе SecureRandom спецификации стандартных имен алгоритмов безопасности Java.

Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

SecureRandom

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

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

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

Информацию о стандартных именах алгоритмов RNG см. в разделе SecureRandom спецификации стандартных имен алгоритмов безопасности Java.

Параметры:
seed — начальное значение.
Исключения:
NullPointerException — если seed имеет значение null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

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

getInstance

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

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

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

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

getInstance

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

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

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

getInstance

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

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

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

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

getInstance

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

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

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

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

getInstance

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

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

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

getProvider

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

getAlgorithm

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

toString

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

getParameters

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

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

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

Возвращает:
эффективные параметры SecureRandomParameters или null, если параметры не использовались.
Начиная с:
9
См. также:
  • SecureRandomSpi

setSeed

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

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

Параметры:
seed — начальное значение.
Исключения:
NullPointerException — если seed имеет значение null
См. также:
  • getSeed(int)

setSeed

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

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

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

Переопределяет:
setSeed в классе Random
Параметры:
seed — начальное значение.
См. также:
  • getSeed(int)

nextBytes

public void nextBytes(byte[] bytes)
Генерирует указанное пользователем количество случайных байтов.
Определено в:
nextBytes в интерфейсе RandomGenerator
Переопределяет:
nextBytes в классе Random
Параметры:
bytes — массив, который будет заполнен случайными байтами.
Исключения:
NullPointerException — если bytes имеет значение null

nextBytes

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

next

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

getSeed

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

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

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

generateSeed

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

getInstanceStrong

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

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

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

Возвращает:
криптографически стойкую реализацию SecureRandom, указанную свойством безопасности securerandom.strongAlgorithms
Исключения:
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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/SecureRandom.html

Spec-Zone.ru

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