Класс SecureRandomSpi
- Все реализуемые интерфейсы:
Serializable
public abstract class SecureRandomSpi extends Object implements Serializable
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
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
| Конструктор без параметров. |
||
protected |
Конструктор с параметром. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected abstract byte[] |
engineGenerateSeed |
Возвращает указанное количество байтов начального заполнения. |
protected SecureRandomParameters |
engineGetParameters() |
Возвращает действующие параметры SecureRandomParameters для данного экземпляра SecureRandom. |
protected abstract void |
engineNextBytes |
Генерирует указанное пользователем количество случайных байтов. |
protected void |
engineNextBytes |
Генерирует указанное пользователем количество случайных байтов с дополнительными параметрами. |
protected void |
engineReseed |
Повторно инициализирует этот объект генератора случайных чисел энтропией, считанной из её источника, с дополнительными параметрами. |
protected abstract void |
engineSetSeed |
Повторно инициализирует этот объект генератора случайных чисел указанным начальным значением. |
String |
toString() |
Возвращает удобочитаемое строковое представление этого SecureRandom. |
Подробное описание конструкторов
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
© 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