Spec-Zone.ru › OpenJDK 27

Класс SecureRandomSpi

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

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

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

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

Дополнительные сведения о потокобезопасности см. в описании SecureRandom. По умолчанию реализация SecureRandomSpi считается небезопасной для использования несколькими параллельно работающими потоками, поэтому SecureRandom будет синхронизировать доступ к каждому соответствующему методу ядра (список методов см. в описании SecureRandom). Однако, если реализация SecureRandomSpi является потокобезопасной, при её регистрации следует установить атрибут поставщика службы «ThreadSafe» в значение «true», как показано ниже:

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

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

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.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удалён в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.

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

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
Возвращает:
строковое представление

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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