public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
getInstance
工厂方法构建(静态方法返回一个给定的类的实例)。
用于一个特定算法的密钥对生成器创建一个可以使用该算法的公钥/私钥对。它还与每个生成的键的算法的特定参数。
有两种方法来生成一个密钥对:在一个算法独立的方式,并在一个特定于算法的方式。两个唯一的区别是对象的初始化:
所有密钥对生成共享一个密钥大小和一个随机源的概念。密钥大小是不同的不同的算法的解释(例如,在DSA算法、密钥大小的情况下对应于模长度)。这类以这两KeyPairGenerator普遍共享的类型参数的initialize
方法。也有一个,只需keysize
参数,并使用SecureRandom
执行优先级最高的供应商作为随机源。(如果没有安装商提供SecureRandom
,实现一个系统提供的随机源使用。)
因为没有其他参数指定当你调用上面的算法独立initialize
方法,它是由供应商如何处理算法的具体参数(如果有的话)是每个键的关联。
如果算法DSA算法和密钥大小(模数尺寸)为512,768,或1024,然后太阳提供者使用一组预先计算的值为p
,q
,和g
参数。如果弹性模量的大小不一的值,该太阳提供者创建一组新的参数。其他供应商可能预先计算的参数集的不仅仅是上面提到的三模尺寸。还有一些人可能没有一列预先计算的参数在所有而始终创建新的参数集。
的情况下,一套算法的具体参数已经存在(例如,所谓的群落参数DSA),有两initialize
方法有AlgorithmParameterSpec
论点。其中也有一个SecureRandom
争论,而其他使用SecureRandom
执行优先级最高的供应商作为随机源。(如果没有安装商提供SecureRandom
,实现一个系统提供的随机源使用。)
如果客户端没有显式初始化KeyPairGenerator(通过调用一个方法,initialize
)每个供应商必须提供一个默认的初始化(文件)。例如,在太阳提供商使用默认的模量大小(1024位的密钥大小)。
请注意,这个类是抽象的,从历史原因KeyPairGeneratorSpi
延伸。应用程序开发人员只需要在这KeyPairGenerator
类中定义的方法的通知;在父类的所有方法都用于加密服务供应商希望提供自己的密钥生成器的实现。
java平台的每种实现都要求支持以下括号中的标准KeyPairGenerator
算法和keysizes:
DiffieHellman
DSA
RSA
(1024,2048)AlgorithmParameterSpec
Modifier | Constructor and Description |
---|---|
protected |
KeyPairGenerator(String algorithm)
创建指定算法KeyPairGenerator对象。
|
Modifier and Type | Method and Description |
---|---|
KeyPair |
generateKeyPair()
生成一个密钥对。
|
KeyPair |
genKeyPair()
生成一个密钥对。
|
String |
getAlgorithm()
返回这个密钥对生成器的算法的标准名称。
|
static KeyPairGenerator |
getInstance(String algorithm)
返回KeyPairGenerator对象生成的公钥/私钥对指定的算法。
|
static KeyPairGenerator |
getInstance(String algorithm, Provider provider)
返回KeyPairGenerator对象生成的公钥/私钥对指定的算法。
|
static KeyPairGenerator |
getInstance(String algorithm, String provider)
返回KeyPairGenerator对象生成的公钥/私钥对指定的算法。
|
Provider |
getProvider()
返回此密钥对生成器对象的提供程序。
|
void |
initialize(AlgorithmParameterSpec params)
初始化密钥发生器使用指定的参数设置和
SecureRandom 执行优先级最高的供应商作为随机源。
|
void |
initialize(AlgorithmParameterSpec params, SecureRandom random)
与给定的参数集和随机源初始化密钥发生器。
|
void |
initialize(int keysize)
初始化密钥对生成一定的密钥大小使用默认参数设置和
SecureRandom 执行优先级最高的供应商作为随机源。
|
void |
initialize(int keysize, SecureRandom random)
初始化为随机给定的源特定的密钥大小的密钥生成器(和默认参数设置)。
|
protected KeyPairGenerator(String algorithm)
algorithm
-算法的标准字符串名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyPairGenerator节。
public String getAlgorithm()
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
该方法通过注册安全提供商列表,从最开始的首选供应商。一个新的keypairgeneratorspi KeyPairGenerator对象封装实现,支持指定算法的第一供应商返回。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
algorithm
-算法的标准字符串名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyPairGenerator节。
NoSuchAlgorithmException
-如果没有提供程序支持一个指定的算法keypairgeneratorspi实施。
Provider
public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
一个新的keypairgeneratorspi KeyPairGenerator对象封装实现从指定的提供程序返回。指定的提供程序必须在安全提供程序列表中注册。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
algorithm
-算法的标准字符串名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyPairGenerator节。
provider
-供应商的字符串名称。
NoSuchAlgorithmException
-如果一个指定的算法keypairgeneratorspi执行不可从指定的供应商。
NoSuchProviderException
-如果指定的供应商不在安全提供商注册名单。
IllegalArgumentException
如果提供者名称为空或空。
Provider
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
一个新的keypairgeneratorspi KeyPairGenerator对象封装实现从指定的提供程序对象返回。请注意,指定的提供程序对象不必在提供者列表中注册。
algorithm
-算法的标准字符串名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyPairGenerator节。
provider
-供应商。
NoSuchAlgorithmException
-如果一个指定的算法keypairgeneratorspi执行不可从指定的提供程序对象。
IllegalArgumentException
-如果指定的提供程序是无效的。
Provider
public final Provider getProvider()
public void initialize(int keysize)
SecureRandom
执行优先级最高的供应商作为随机源。(如果没有安装商提供
SecureRandom
,实现一个系统提供的随机源使用。)
keysize
-密钥大小。这是一个算法的具体指标,如模长度,指定的位数。
InvalidParameterException
-如果
keysize
不是由该KeyPairGenerator对象支持。
public void initialize(int keysize, SecureRandom random)
initialize
方法重写,继承类
KeyPairGeneratorSpi
keysize
-密钥大小。这是一个算法的具体指标,如模长度,指定的位数。
random
-随机源。
InvalidParameterException
-如果
keysize
不是由该KeyPairGenerator对象支持。
public void initialize(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
SecureRandom
执行优先级最高的供应商作为随机源。(如果没有安装商提供
SecureRandom
,实现一个系统提供的随机源使用。)。
这种具体方法已被添加到这个以前定义的抽象类。此方法调用keypairgeneratorspi initialize
方法,通过它params
和随机源(如果安装的提供者提供一个具有最高优先级的供应商或系统获得)。这initialize
方法总是抛出UnsupportedOperationException如果不是由提供程序重写。
params
-参数设置用于生成密钥。
InvalidAlgorithmParameterException
如果给定的参数,这个密钥对发电机是不合适的。
public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
这种具体方法已被添加到这个以前定义的抽象类。此方法调用keypairgeneratorspi initialize
方法,通过它params
和random
,initialize
方法总是抛出UnsupportedOperationException如果不是由提供程序重写。
initialize
方法重写,继承类
KeyPairGeneratorSpi
params
-参数设置用于生成密钥。
random
-随机源。
InvalidAlgorithmParameterException
如果给定的参数,这个密钥对发电机是不合适的。
public final KeyPair genKeyPair()
如果KeyPairGenerator没有被显式初始化提供程序将使用默认值,具体的尺寸等(具体算法)生成的密钥的值。
这将产生一个新的密钥对每一次它被称为。
此方法在功能上相当于generateKeyPair
。
public KeyPair generateKeyPair()
如果KeyPairGenerator没有被显式初始化提供程序将使用默认值,具体的尺寸等(具体算法)生成的密钥的值。
这将产生一个新的密钥对每一次它被称为。
此方法在功能上相当于genKeyPair
。
generateKeyPair
方法重写,继承类
KeyPairGeneratorSpi
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.