JavaTM 2 Platform
Standard Ed. 5.0

java.security
类 KeyPairGenerator

java.lang.Object
  继承者 java.security.KeyPairGeneratorSpi
      继承者 java.security.KeyPairGenerator

public abstract class KeyPairGenerator
extends KeyPairGeneratorSpi

KeyPairGenerator 类用于生成公钥和私钥对。密钥对生成器是使用 getInstance 工厂方法(返回一个给定类的实例的静态方法)构造的。

特定算法的密钥对生成器创建可与此算法一起使用的公钥/私钥对。也将每个生成的密钥与特定于算法的参数相关联。

有两种方法生成一个密钥对:与算法无关的方式和特定于算法的方式。两种方式的惟一区别在于对象的初始化:

每个 提供程序都必须提供(并记录)默认的初始化,以防客户没有显式初始化 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

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 方法,传递 paramsrandom。如果没有被提供程序重写,则该 initialize 方法总是抛出 UnsupportedOperationException。

覆盖:
KeyPairGeneratorSpi 中的 initialize
参数:
params - 用于生成密钥的参数集合。
random - 随机源。
抛出:
InvalidAlgorithmParameterException - 如果给定的参数不适合此密钥对生成器。
从以下版本开始:
1.2

genKeyPair

public final KeyPair genKeyPair()
生成密钥对。

如果此 KeyPairGenerator 没有被显式初始化,特定于提供程序的默认值将被用于所生成密钥的大小和其他(特定于算法的)值。

每次调用此方法都将生成新的密钥对。

此方法在功能上等同于 generateKeyPair

返回:
生成的密钥对
从以下版本开始:
1.2

generateKeyPair

public KeyPair generateKeyPair()
生成一个密钥对。

如果此 KeyPairGenerator 没有被显式初始化,特定于提供程序的默认值将被用于所生成密钥的大小和其他(特定于算法的)值。

每次调用此方法都将生成新的密钥对。

此方法在功能上等同于 generateKeyPair

指定者:
KeyPairGeneratorSpi 中的 generateKeyPair
返回:
生成的密钥对

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策