Класс KeyPairGenerator
public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
KeyPairGenerator используется для создания пар открытых и закрытых ключей. Генераторы пар ключей создаются с помощью фабричных методов getInstance (статических методов, возвращающих экземпляры заданного класса). Генератор пар ключей для конкретного алгоритма создает пару открытого и закрытого ключей, которую можно использовать с этим алгоритмом. Он также связывает с каждым созданным ключом параметры, специфичные для алгоритма.
Существует два способа создания пары ключей: независимый от алгоритма и специфичный для алгоритма. Различие между ними заключается только в инициализации объекта:
-
Инициализация, независимая от алгоритма
Для всех генераторов пар ключей используются понятия размера ключа и источника случайных чисел. Размер ключа интерпретируется по-разному для разных алгоритмов (например, в случае алгоритма DSA размер ключа соответствует длине модуля). В этом классе
KeyPairGeneratorесть методinitialize, принимающий эти два универсальных типа аргументов. Также есть метод, принимающий только аргументkeysizeи использующий реализациюSecureRandomпоставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел. (Если ни один из установленных поставщиков не предоставляет реализациюSecureRandom, используется системный источник случайных чисел.)Поскольку при вызове указанных выше методов
initialize, независимых от алгоритма, никакие другие параметры не задаются, поставщик сам определяет, что делать с параметрами, специфичными для алгоритма (если они есть), которые будут связаны с каждым ключом. Сведения о параметрах, специфичных для алгоритма, используемых по умолчанию поставщиками JDK, см. в документе Поставщики JDK. -
Инициализация, специфичная для алгоритма
Если набор параметров, специфичных для алгоритма, уже существует (например, так называемые параметры сообщества в DSA), можно использовать два метода
initialize, принимающих аргументAlgorithmParameterSpec. Один из них также принимает аргументSecureRandom, а другой использует реализациюSecureRandomпоставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел. (Если ни один из установленных поставщиков не предоставляет реализациюSecureRandom, используется системный источник случайных чисел.)
Если клиент явно не инициализирует KeyPairGenerator (вызовом метода initialize), каждый поставщик должен предоставить и документировать инициализацию по умолчанию. Сведения о значениях KeyPairGenerator по умолчанию, используемых поставщиками JDK, см. в разделах «Ограничения на размер ключа» документа Поставщики JDK. Обратите внимание, что значения по умолчанию могут различаться у разных поставщиков. Кроме того, значение по умолчанию для поставщика может измениться в будущей версии. Поэтому рекомендуется явно инициализировать KeyPairGenerator, а не полагаться на значения по умолчанию, зависящие от поставщика.
Обратите внимание, что этот класс является абстрактным и по историческим причинам наследуется от KeyPairGeneratorSpi. Разработчикам приложений следует учитывать только методы, определенные в этом классе KeyPairGenerator; все методы суперкласса предназначены для поставщиков криптографических служб, которым требуется предоставить собственные реализации генераторов пар ключей.
Каждая реализация платформы Java должна поддерживать следующие стандартные алгоритмы KeyPairGenerator. Для алгоритма «EC» реализации должны поддерживать указанные в скобках эллиптические кривые. Для остальных алгоритмов реализации должны поддерживать указанные в скобках размеры ключей.
-
DiffieHellman(1024, 2048, 3072, 4096) -
DSA(1024, 2048) -
EC(secp256r1, secp384r1) -
RSA(1024, 2048, 3072, 4096) -
RSASSA-PSS(2048, 3072, 4096) X25519
- Начиная с:
- 1.1
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает объект KeyPairGenerator для указанного алгоритма. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
KeyPair |
generateKeyPair() |
Создает пару ключей. |
final KeyPair |
genKeyPair() |
Создает пару ключей. |
String |
getAlgorithm() |
Возвращает стандартное имя алгоритма для этого генератора пар ключей. |
static KeyPairGenerator |
getInstance |
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма. |
static KeyPairGenerator |
getInstance |
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма. |
static KeyPairGenerator |
getInstance |
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма. |
final Provider |
getProvider() |
Возвращает поставщика этого объекта генератора пар ключей. |
void |
initialize |
Инициализирует генератор пар ключей для заданного размера ключа, используя набор параметров по умолчанию и реализацию SecureRandom поставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел. |
void |
initialize |
Инициализирует генератор пар ключей для заданного размера ключа с указанным источником случайных чисел (и набором параметров по умолчанию). |
void |
initialize |
Инициализирует генератор пар ключей с указанным набором параметров и реализацией SecureRandom поставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел. |
void |
initialize |
Инициализирует генератор пар ключей с указанным набором параметров и источником случайных чисел. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Проверяет, «равен ли» этот объект другому объекту. |
protected void |
finalize() |
Устарело и будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
KeyPairGenerator
protected KeyPairGenerator(String algorithm)
KeyPairGenerator для указанного алгоритма.- Параметры:
-
algorithm— стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java. - Внешние спецификации
Подробное описание методов
getAlgorithm
public String getAlgorithm()
- Возвращает:
- стандартное строковое имя алгоритма.
- Внешние спецификации
getInstance
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма. Этот метод перебирает список зарегистрированных поставщиков безопасности, начиная с наиболее предпочтительного. Возвращается новый объект KeyPairGenerator, содержащий реализацию KeyPairGeneratorSpi первого поставщика, поддерживающего указанный алгоритм.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Примечание по реализации:
- Реализация JDK Reference дополнительно использует свойство
jdk.security.provider.preferredSecurity, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Этот порядок может отличаться от порядка поставщиков, возвращаемого методомSecurity.getProviders(). - Параметры:
-
algorithm— стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java. - Возвращает:
- новый объект
KeyPairGenerator - Исключения:
-
NoSuchAlgorithmException— если ни одинProviderне поддерживает реализациюKeyPairGeneratorSpiдля указанного алгоритма -
NullPointerException— еслиalgorithmравенnull - Внешние спецификации
- См. также:
getInstance
public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма. Возвращается новый объект KeyPairGenerator, содержащий реализацию KeyPairGeneratorSpi указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
algorithm— стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java. -
provider— строковое имя поставщика. - Возвращает:
- новый объект
KeyPairGenerator - Исключения:
-
IllegalArgumentException— если имя поставщика равноnullили является пустым -
NoSuchAlgorithmException— если указанный поставщик не предоставляет реализациюKeyPairGeneratorSpiдля указанного алгоритма -
NoSuchProviderException— если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException— еслиalgorithmравенnull - Внешние спецификации
- См. также:
getInstance
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма. Возвращается новый объект KeyPairGenerator, содержащий реализацию KeyPairGeneratorSpi указанного поставщика. Обратите внимание, что указанный поставщик не обязательно должен быть зарегистрирован в списке поставщиков.
- Параметры:
-
algorithm— стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java. -
provider— поставщик. - Возвращает:
- новый объект
KeyPairGenerator - Исключения:
-
IllegalArgumentException— если указанный поставщик равенnull -
NoSuchAlgorithmException— если указанный объектProviderне предоставляет реализациюKeyPairGeneratorSpiдля указанного алгоритма -
NullPointerException— еслиalgorithmравенnull - Начиная с:
- 1.4
- Внешние спецификации
- См. также:
getProvider
public final Provider getProvider()
- Возвращает:
- поставщика этого объекта генератора пар ключей
initialize
public void initialize(int keysize)
SecureRandom поставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел. (Если ни один из установленных поставщиков не предоставляет реализацию SecureRandom, используется системный источник случайных чисел.)- Параметры:
-
keysize— размер ключа. Это специфичная для алгоритма величина, например длина модуля, заданная в битах. - Исключения:
-
InvalidParameterException— еслиkeysizeне поддерживается этим объектомKeyPairGenerator.
initialize
public void initialize(int keysize, SecureRandom random)
- Определено в:
-
initializeв классеKeyPairGeneratorSpi - Параметры:
-
keysize— размер ключа. Это специфичная для алгоритма величина, например длина модуля, заданная в битах. -
random— источник случайных чисел. - Исключения:
-
InvalidParameterException— еслиkeysizeне поддерживается этим объектомKeyPairGenerator. - Начиная с:
- 1.2
initialize
public void initialize(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
SecureRandom поставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел. (Если ни один из установленных поставщиков не предоставляет реализацию SecureRandom, используется системный источник случайных чисел.) Этот конкретный метод добавлен в ранее определенный абстрактный класс. Метод вызывает метод KeyPairGeneratorSpi initialize, передавая ему params и источник случайных чисел (полученный от установленного поставщика с наивысшим приоритетом или предоставленный системой, если ни один из установленных поставщиков не предоставляет такой источник). Этот метод initialize всегда выбрасывает UnsupportedOperationException, если поставщик не переопределил его.
- Параметры:
-
params— набор параметров, используемый для создания ключей. - Исключения:
-
InvalidAlgorithmParameterException— если указанные параметры не подходят для этого генератора пар ключей. - Начиная с:
- 1.2
initialize
public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
Этот конкретный метод добавлен в ранее определенный абстрактный класс. Метод вызывает метод KeyPairGeneratorSpi initialize, передавая ему params и random. Этот метод initialize всегда выбрасывает UnsupportedOperationException, если поставщик не переопределил его.
- Переопределяет:
-
initializeв классеKeyPairGeneratorSpi - Параметры:
-
params— набор параметров, используемый для создания ключей. -
random— источник случайных чисел. - Исключения:
-
InvalidAlgorithmParameterException— если указанные параметры не подходят для этого генератора пар ключей. - Начиная с:
- 1.2
genKeyPair
public final KeyPair genKeyPair()
Если этот объект KeyPairGenerator не был явно инициализирован, для размера и других значений (специфичных для алгоритма) созданных ключей используются значения по умолчанию, зависящие от поставщика.
При каждом вызове создается новая пара ключей.
Этот метод функционально эквивалентен методу generateKeyPair.
- Возвращает:
- созданную пару ключей
- Начиная с:
- 1.2
generateKeyPair
public KeyPair generateKeyPair()
Если этот объект KeyPairGenerator не был явно инициализирован, для размера и других значений (специфичных для алгоритма) созданных ключей используются значения по умолчанию, зависящие от поставщика.
При каждом вызове создается новая пара ключей.
Этот метод функционально эквивалентен методу genKeyPair.
- Определено в:
-
generateKeyPairв классеKeyPairGeneratorSpi - Возвращает:
- созданную пару ключей
© 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.