|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.security
类 KeyPairGenerator
java.lang.Object java.security.KeyPairGeneratorSpi java.security.KeyPairGenerator
-
public abstract class KeyPairGenerator
- extends KeyPairGeneratorSpi
KeyPairGenerator 类用于生成公钥和私钥对。密钥对生成器是使用 getInstance
工厂方法(返回一个给定类的实例的静态方法)构造的。
特定算法的密钥对生成器创建可与此算法一起使用的公钥/私钥对。也将每个生成的密钥与特定于算法的参数相关联。
有两种方法生成一个密钥对:与算法无关的方式和特定于算法的方式。两种方式的惟一区别在于对象的初始化:
- 与算法无关的初始化
所有的密钥对生成器遵循密钥大小和随机源的概念。对于不同的算法密钥大小的解释不同(例如,对于 DSA 算法,密钥大小对应于模的长度)。此 KeyPairGenerator 类有一个
initialize
方法,该方法带有这两个通用的共享类型的参数。也有一个只带有keysize
参数的方法,它使用提供程序(以最高优先级安装)的SecureRandom
实现作为随机源。(如果任何安装的 provider 都不提供SecureRandom
的实现,则使用系统提供的随机源。)因为调用上述与算法无关的
initialize
方法时没有指定其他参数,所以由提供程序决定如何处理与每个密钥相关联的特定于算法的参数(如果有)。如果算法为 DSA 算法,密钥大小(模大小)为 512、768、或 1024,那么 Sun 提供程序为
p
、q
和g
参数使用预计算值。如果模大小不是上述值之一,则 Sun 提供程序创建一个新的参数集合。其他提供程序可能具有供更多模大小(不仅仅是上文提及的那三个)使用的预计算参数集合。其他提供程序也可能根本没有预计算参数列表,而总是创建新的参数集合。 - 特定于算法的初始化
对于特定于算法的参数集合已存在的情况(例如,DSA 中所谓的公用参数),有两个
initialize
方法具有AlgorithmParameterSpec
参数。其中一个方法还有一个SecureRandom
参数,而另一个方法使用提供程序(以最高优先级安装)的SecureRandom
实现作为随机源。(如果任何安装的 provider 都不提供SecureRandom
的实现,则使用系统提供的随机源。)
每个 提供程序都必须提供(并记录)默认的初始化,以防客户没有显式初始化 KeyPairGenerator(通过调用 initialize
方法)。例如,Sun 提供程序使用 1024 位的默认模大小(密钥大小)。
注意,由于历史原因,此类是抽象的,是从 KeyPairGeneratorSpi
扩展的。应用程序开发人员只应该注意在此 KeyPairGenerator
类中定义的方法;超类中的所有方法是供加密服务提供者使用的,这些加密服务提供者希望提供自己的密钥对生成器实现。
- 另请参见:
-
AlgorithmParameterSpec
构造方法摘要 | |
---|---|
protected |
KeyPairGenerator(String algorithm) 针对指定的算法创建 KeyPairGenerator 对象。 |
方法摘要 | |
---|---|
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) 使用给定的随机源(和默认的参数集合)初始化确定密钥长度的密钥对生成器。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
KeyPairGenerator
protected KeyPairGenerator(String algorithm)
-
针对指定的算法创建 KeyPairGenerator 对象。
- 参数:
-
algorithm
- 算法的标准字符串名称。有关标准算法名称的信息,请参阅《Java Cryptography Architecture API Specification & Reference》中的附录 A。
方法详细信息 |
---|
getAlgorithm
public String getAlgorithm()
- 返回此密钥对生成器算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Architecture API Specification & Reference》中的附录 A。
-
- 返回:
- 算法的标准字符串名称。
getInstance
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
- 生成实现指定摘要算法的 KeyPairGenerator 对象。如果默认的提供程序包提供所请求的摘要算法的实现,则返回包含该实现的 KeyPairGenerator 的实例。如果默认包中不存在该算法,则搜索其他包。
-
- 参数:
-
algorithm
- 算法的标准字符串名称。有关标准算法名称的信息,请参阅《Java Cryptography Architecture API Specification & Reference》中的附录 A。 - 返回:
- 新的 KeyPairGenerator 对象。
- 抛出:
-
NoSuchAlgorithmException
- 如果算法在环境中不可用。
getInstance
public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
- 如果可从指定的提供程序得到算法,则生成实现了该指定算法的 KeyPairGenerator 对象。
-
- 参数:
-
algorithm
- 算法的标准字符串名称。有关标准算法名称的信息,请参阅《Java Cryptography Architecture API Specification & Reference》中的附录 A。 -
provider
- 提供程序的字符串名称。 - 返回:
- 新的 KeyPairGenerator 对象。
- 抛出:
-
NoSuchAlgorithmException
- 如果不能从提供程序得到算法。 -
NoSuchProviderException
- 如果提供程序在环境中不可用。 -
IllegalArgumentException
- 如果提供程序的名称为 null 或空。 - 另请参见:
-
Provider
getInstance
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
-
如果该可从指定的提供程序得到算法,则生成实现了该指定算法的 KeyPairGenerator 对象。注:
provider
不一定都需要注册。 -
- 参数:
-
algorithm
- 算法的标准字符串名称。有关标准算法名称的信息,请参阅《Java Cryptography Architecture API Specification & Reference》中的附录 A。 -
provider
- 提供程序。 - 返回:
- 新的 KeyPairGenerator 对象。
- 抛出:
-
NoSuchAlgorithmException
- 如果不能从提供程序得到算法。 -
IllegalArgumentException
- 如果provider
为 null。 - 从以下版本开始:
- 1.4
- 另请参见:
-
Provider
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)
- 使用给定的随机源(和默认的参数集合)初始化确定密钥长度的密钥对生成器。
-
- 指定者:
-
类
KeyPairGeneratorSpi
中的initialize
-
- 参数:
-
keysize
- 密钥大小。这是特定于算法的度量(如模长度),以位数的形式指定。 -
random
- 随机源。 - 抛出:
-
InvalidParameterException
- 如果keysize
不受此 KeyPairGenerator 支持 - 从以下版本开始:
- 1.2