Spec-Zone.ru › OpenJDK 25

Класс 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

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

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

Spec-Zone.ru

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