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