Spec-Zone.ru › OpenJDK 24

Класс SecureRandomSpi

java.lang.Object
java.security.SecureRandomSpi
Все реализованные интерфейсы:
Serializable
public abstract class SecureRandomSpi extends Object implements Serializable
Этот класс определяет интерфейс поставщика сервисов (SPI) для класса SecureRandom.

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

Требования к реализации:
Если конструктор SecureRandomSpi(SecureRandomParameters) переопределен в реализации, он всегда будет вызываться при каждом создании объекта SecureRandom. Точнее, если объект создаётся с помощью одного из методов SecureRandom's getInstance без параметра SecureRandomParameters, конструктор будет вызван с аргументом null, и реализация отвечает за создание собственного параметра SecureRandomParameters для использования при вызове engineGetParameters(). Если объект создаётся с помощью одного из методов SecureRandom's getInstance с аргументом SecureRandomParameters, конструктор будет вызван с этим аргументом. Метод engineGetParameters() не должен возвращать null.

В противном случае, если конструктор SecureRandomSpi(SecureRandomParameters) не переопределён в реализации, конструктор SecureRandomSpi() должен быть переопределён, и он будет вызван, если объект создаётся с помощью одного из методов SecureRandom's getInstance без аргумента SecureRandomParameters. Вызов одного из методов SecureRandom's getInstance с аргументом SecureRandomParameters никогда не вернёт экземпляр этой реализации. Метод engineGetParameters() должен возвращать null.

См. SecureRandom для получения дополнительных сведений о потокобезопасности. По умолчанию реализация SecureRandomSpi считается небезопасной для использования несколькими одновременными потоками, и SecureRandom будет синхронизировать доступ к каждому применимому методу движка (см. SecureRandom для списка методов). Однако, если реализация SecureRandomSpi потокобезопасна, атрибут поставщика сервисов service provider attribute "ThreadSafe" должен быть установлен в "true" во время регистрации, следующим образом:

 put("SecureRandom.AlgName ThreadSafe", "true");
или
 putService(new Service(this, "SecureRandom", "AlgName", className,
          null, Map.of("ThreadSafe", "true")));
SecureRandom будет вызывать соответствующие методы движка без синхронизации.
С:
1.2
См. также:
  • Сериализованная форма

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

SecureRandomSpi()
SecureRandomSpi(SecureRandomParameters params)
Модификатор Конструктор Описание
Конструктор без параметров.
protected
Конструктор с параметром.

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

Модификатор и тип Метод Описание
protected abstract byte[] engineGenerateSeed(int numBytes)
Возвращает заданное количество байтов семян.
protected SecureRandomParameters engineGetParameters()
Возвращает эффективный SecureRandomParameters для этого экземпляра SecureRandom.
protected abstract void engineNextBytes(byte[] bytes)
Генерирует указанное количество случайных байтов.
protected void engineNextBytes(byte[] bytes, SecureRandomParameters params)
Генерирует указанное количество случайных байтов с дополнительными параметрами.
protected void engineReseed(SecureRandomParameters params)
Переинициализирует этот объект генератора случайных чисел с вводом энтропии, считанным из его источника энтропии, с дополнительными параметрами.
protected abstract void engineSetSeed(byte[] seed)
Переинициализирует этот объект генератора случайных чисел с заданным семеном.
String toString()
Возвращает строковое представление этого объекта SecureRandom, читаемое человеком.

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

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

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

SecureRandomSpi

public SecureRandomSpi()
Конструктор без параметров.

SecureRandomSpi

protected SecureRandomSpi(SecureRandomParameters params)
Конструктор с параметром.
Параметры:
params - объект SecureRandomParameters. Этот аргумент может быть null.
Исключения:
IllegalArgumentException - если params не распознаётся или не поддерживается этим SecureRandom
С момента:
9

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

engineSetSeed

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

engineNextBytes

protected abstract void engineNextBytes(byte[] bytes)
Генерирует указанное пользователем количество случайных байтов.

Некоторые генераторы случайных чисел могут генерировать только ограниченное количество случайных байтов за один вызов. Если размер bytes больше этого предела, реализация должна вызывать свой процесс генерации несколько раз, чтобы полностью заполнить буфер, прежде чем возвращаться из этого метода.

Параметры:
bytes - массив, который нужно заполнить случайными байтами.

engineNextBytes

protected void engineNextBytes(byte[] bytes, SecureRandomParameters params)
Генерирует указанное пользователем количество случайных байтов с дополнительными параметрами.

Некоторые генераторы случайных чисел могут генерировать только ограниченное количество случайных байтов за один вызов. Если размер bytes больше этого предела, реализация должна вызывать свой процесс генерации несколько раз, чтобы полностью заполнить буфер, прежде чем возвращаться из этого метода.

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

engineGenerateSeed

protected abstract byte[] engineGenerateSeed(int numBytes)
Возвращает заданное количество байтов начального значения. Этот вызов может быть использован для инициализации других генераторов случайных чисел.
Параметры:
numBytes - количество байтов начального значения для генерации.
Возвращает:
байты начального значения.

engineReseed

protected void engineReseed(SecureRandomParameters params)
Перезапускает этот объект генератора случайных чисел с вводом энтропии, считанным из его источника энтропии с дополнительными параметрами.

Если этот метод вызывается методом SecureRandom.reseed(), params будет null.

Не переопределяйте этот метод, если реализация не поддерживает перезапуск.

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

engineGetParameters

protected SecureRandomParameters engineGetParameters()
Возвращает эффективные параметры SecureRandomParameters для этого экземпляра SecureRandom.
Требования к реализации:
По умолчанию реализация возвращает null.
Возвращает:
эффективные параметры SecureRandomParameters, или null, если параметры не использовались.
С момента:
9

toString

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

© 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/SecureRandomSpi.html

Spec-Zone.ru

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