当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)

类 java.security.KeyPairGenerator

java.lang.Object
   |
   +----java.security.KeyPairGenerator

public abstract class KeyPairGenerator
extends Object

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

密钥生成有时不适合于算法独立性。例如,可以指定密钥系列参数 ( p、q 和 g) 生成一个 DSA 密钥对,但是不能这样生成一个 RSA 密钥对。即,那些参数适用于 DSA 但不适用于 RSA。

所以有两种生成一个密钥对的方式:独立于算法的方式和算法特有的方式。两种方式的区别只是对象的初始化不同。

所有的密钥对生成器都有“长度”的概念和一个随机数源。长度的量度是被所有的算法共享的,尽管不同的算法对它的解释不同。 KeyPairGenerator 类的 initialize 方法采用这两种共享的参数类型。

因为调用独立于算法的 initialize 方法时不需要其它的参数,其它的值,如算法参数、公有指数等缺省的设置为标准值。

有时需要用算法特定的语义初始化一个密钥对生成器对象。例如,可能希望用给定的参数集合 pqg 初始化一个 DSA 密钥生成器,或者用给定的共有指数初始化一个 RSA 密钥生成器。

这通过算法特定的标准接口完成。不是调用独立于算法的 KeyPairGenerator initialize 方法,而是将密钥生成器变形为一个算法特定的接口,调用它的一个指定参数的初始化方法。例如,DSAKeyPairGenerator 接口 ( 在 java.security.interfaces 中 )。

参见:
DSAKeyPairGenerator

构造子索引

KeyPairGenerator(String)
为指定的算法创建一个 KeyPairGenerator 对象。

方法索引

generateKeyPair()
生成一个密钥对。
getAlgorithm()
返回该密钥生成器的算法的标准名字。
getInstance(String)
生成一个 KeyPairGenerator 对象,它实现申请的算法,该算法在环境中是可用的。
getInstance(String, String)
生成一个 KeyPairGenerator 对象,实现指定的算法,如果提供者的算法是可用的,那么该算法由该提供者提供。
initialize(int)
使用系统提供的随机数源将密钥对生成器初始化为特定的长度。
initialize(int, SecureRandom)
将密钥对生成器初始化为特定的长度。

构造子

KeyPairGenerator
 protected KeyPairGenerator(String algorithm)
为指定的算法创建一个 KeyPairGenerator 对象。

参数:
algorithm - 算法的标准字符串名。

方法

getAlgorithm
 public String getAlgorithm()
返回该密钥生成器的算法的标准名字。

返回值:
算法的标准字符串名。
getInstance
 public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
生成一个 KeyPairGenerator 对象,它根据已有的算法实现申请的算法。

参数:
algorithm - 算法的标准字符串名。
返回值:
新建的 KeyPairGenerator 对象。
抛出: NoSuchAlgorithmException
如果环境中没有该算法。
getInstance
 public static KeyPairGenerator getInstance(String algorithm,
                                            String provider) throws NoSuchAlgorithmException, NoSuchProviderException
生成一个 KeyPairGenerator 对象,实现指定的算法,如果提供者的算法是可用的,那么该算法由该提供者提供。

参数:
algorithm - 算法的标准字符串名。
provider - 提供者的标准字符串名。
返回值:
新建的 KeyPairGenerator 对象。
抛出: NoSuchAlgorithmException
如果提供者的算法是不可用的。
抛出: NoSuchProviderException
如果环境中没有该提供者。
参见:
Provider
initialize
 public abstract void initialize(int strength,
                                 SecureRandom random)
将密钥对生成器初始化为特定的长度。

参数:
strength - 密钥的长度。这是算法特定的制式,如模数长度。
random - 该生成器的随机数源。
initialize
 public void initialize(int strength)
使用系统提供的随机数源,将密钥对生成器初始化为特定的长度。

参数:
strength - 密钥的长度。这是算法特定的制式,如模数长度。
generateKeyPair
 public abstract KeyPair generateKeyPair()
生成一个密钥对。 除非使用 KeyPairGenerator 接口调用一个初始化方法,否则将使用算法特定的缺省值。在每次调用它时将生成一个新的密钥对。


当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)