|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 KeyGenerator
java.lang.Object javax.crypto.KeyGenerator
-
public class KeyGenerator
- extends Object
此类提供(对称)密钥生成器的功能。
密钥生成器是使用此类的某个 getInstance
类方法构造的。
KeyGenerator 对象可重复使用,也就是说,在生成密钥后,可以重复使用同一 KeyGenerator 对象来生成进一步的密钥。
生成密钥的方式有两种:与算法无关的方式,以及特定于算法的方式。两者之间的惟一不同是对象的初始化:
- 与算法无关的初始化
所有密钥生成器都具有密钥长度 和随机源 的概念。此 KeyGenerator 类中有一个
init
方法,它可采用这两个通用概念的参数。还有一个只带keysize
参数的 init 方法,它使用具有最高优先级的提供程序的 SecureRandom 实现作为随机源(如果安装的提供程序都不提供 SecureRandom 实现,则使用系统提供的随机源)。此 KeyGenerator 类还提供一个只带随机源参数的 inti 方法。因为调用上述与算法无关的
init
方法时未指定其他参数,所以由提供程序决定如何处理将与每个密钥相关的特定于算法的参数(如果有)。 - 特定于算法的初始化
在已经存在特定于算法的参数集的情况下,有两个具有
AlgorithmParameterSpec
参数的init
方法。其中一个方法还有一个SecureRandom
参数,而另一个方法将已安装的高优先级提供程序的 SecureRandom 实现用作随机源(或者作为系统提供的随机源,如果安装的提供程序都不提供 SecureRandom 实现)。
如果客户端没有显式地初始化 KeyGenerator(通过调用 init
方法),每个提供程序必须提供(和记录)默认初始化。
- 从以下版本开始:
- 1.4
- 另请参见:
-
SecretKey
构造方法摘要 | |
---|---|
protected |
KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm) 创建一个 KeyGenerator 对象。 |
方法摘要 | |
---|---|
SecretKey |
generateKey() 生成一个密钥。 |
String |
getAlgorithm() 返回此 KeyGenerator 对象的算法名称。 |
static KeyGenerator |
getInstance(String algorithm) 为指定算法生成一个 KeyGenerator 对象。 |
static KeyGenerator |
getInstance(String algorithm, Provider provider) 为来自指定提供程序的指定密钥算法生成一个 KeyGenerator 对象。 |
static KeyGenerator |
getInstance(String algorithm, String provider) 为来自指定提供程序的指定密钥算法生成一个 KeyGenerator 对象。 |
Provider |
getProvider() 返回此 KeyGenerator 对象的提供程序。 |
void |
init(AlgorithmParameterSpec params) 用指定参数集初始化此密钥生成器。 |
void |
init(AlgorithmParameterSpec params, SecureRandom random) 用指定参数集和用户提供的随机源初始化此密钥生成器。 |
void |
init(int keysize) 初始化此密钥生成器,使其具有确定的密钥长度。 |
void |
init(int keysize, SecureRandom random) 使用用户提供的随机源初始化此密钥生成器,使其具有确定的密钥长度。 |
void |
init(SecureRandom random) 初始化此密钥生成器。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
KeyGenerator
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
-
创建一个 KeyGenerator 对象。
- 参数:
-
keyGenSpi
- 委托 -
provider
- 提供程序 -
algorithm
- 算法
方法详细信息 |
---|
getAlgorithm
public final String getAlgorithm()
-
返回此
KeyGenerator
对象的算法名称。此名称与在某个创建此
KeyGenerator
对象的getInstance
调用中指定的名称相同。 -
- 返回:
-
此
KeyGenerator
对象的算法名称。
getInstance
public static final KeyGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
-
为指定算法生成一个
KeyGenerator
对象。如果默认提供程序包提供所请求密钥生成器的实现,则返回包含该实现的KeyGenerator
实例。如果默认提供程序包中不存在请求的密钥生成器,则搜索其他提供程序包。 -
- 参数:
-
algorithm
- 所请求的密钥算法的标准名称。有关标准算法名称的信息,请参阅 Java Cryptography Extension Reference Guide 中的附录 A。 - 返回:
-
新的
KeyGenerator
对象 - 抛出:
-
NullPointerException
- 如果指定算法为 null。 -
NoSuchAlgorithmException
- 如果默认提供程序包或搜索到的任何其他提供程序包中不存在指定算法的密钥生成器。
getInstance
public static final KeyGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
-
为来自指定提供程序的指定密钥算法生成一个
KeyGenerator
对象。 -
- 参数:
-
algorithm
- 请求的密钥算法的标准名称。有关标准算法名称的信息,请参阅 Java Cryptography Extension Reference Guide 中的附录 A。 -
provider
- 提供程序的名称 - 返回:
-
新的
KeyGenerator
对象 - 抛出:
-
NullPointerException
- 如果指定算法为 null。 -
NoSuchAlgorithmException
- 如果指定算法的密钥生成器在指定的提供程序中不可用。 -
NoSuchProviderException
- 如果尚未配置指定的提供程序。 -
IllegalArgumentException
- 如果该provider
为 null。
getInstance
public static final KeyGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
-
为来自指定提供程序的指定密钥算法生成一个
KeyGenerator
对象。注:该provider
不必注册。 -
- 参数:
-
algorithm
- 请求的密钥算法的标准名称。有关标准算法名称的信息,请参阅 Java Cryptography Extension Reference Guide 中的附录 A。 -
provider
- 提供程序 - 返回:
-
新的
KeyGenerator
对象 - 抛出:
-
NullPointerException
- 如果指定算法为 null。 -
NoSuchAlgorithmException
- 如果指定算法的密钥生成器在指定的提供程序中不可用。 -
IllegalArgumentException
- 如果该provider
为 null。
getProvider
public final Provider getProvider()
-
返回此
KeyGenerator
对象的提供程序。 -
- 返回:
-
此
KeyGenerator
对象的提供程序
init
public final void init(SecureRandom random)
- 初始化此密钥生成器。
-
- 参数:
-
random
- 此生成器的随机源
init
public final void init(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
-
用指定参数集初始化此密钥生成器。
如果此密钥生成器需要所有随机字节,则它会使用已安装的高优先级提供程序的
实现作为随机源来获得它们。(如果安装的提供程序都不提供 SecureRandom 的实现,则将使用系统提供的随机源。)SecureRandom
-
- 参数:
-
params
- 密钥生成参数 - 抛出:
-
InvalidAlgorithmParameterException
- 如果给定算法不适合此密钥生成器