public class KeyGenerator extends Object
密钥生成器使用这个类的一个getInstance类方法构造。
keygenerator对象是可重用的,即,在一个关键已经产生,同样的keygenerator对象可以重新用于产生进一步的钥匙。
有两种方法来生成一个关键:在一个算法独立的方式,并在一个特定于算法的方式。两个唯一的区别是对象的初始化:
所有的密钥生成器份密钥大小和随机源概念。这是有keygenerator类,以这两个普遍共享的类型参数的init方法。也有一个,只需keysize参数,并使用提供的执行优先级最高的供应商作为随机源(或一个系统提供的随机源如果安装的供应商没有提供实现,和一个提供)只需要一个随机源。
因为没有其他参数指定当你调用上面的算法独立init方法,它是由供应商如何处理算法的具体参数(如果有的话)是每个键的关联。
的情况下,一套算法的具体参数已经存在,有两init方法有AlgorithmParameterSpec论点。其中也有一个SecureRandom争论,而其他使用SecureRandom实现优先级最高的供应商作为随机源(或一个系统提供的随机源如果没有安装商提供提供的实现)。
如果客户端没有显式初始化KeyGenerator(通过调用一个方法,init)每个供应商必须提供一个默认的初始化(文件)。
java平台的每种实现都要求支持下列括号中的keysizes标准KeyGenerator算法:
SecretKey
| Modifier | Constructor and Description |
|---|---|
protected |
KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
创建一个keygenerator对象。
|
| Modifier and Type | Method and Description |
|---|---|
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)
初始化这个密钥生成器。
|
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
keyGenSpi -代表
provider -供应商
algorithm -算法
public final String getAlgorithm()
KeyGenerator。
这是相同的名字,是在一个KeyGenerator创建这个对象调用指定getInstance。
KeyGenerator对象的算法名称。
public static final KeyGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
KeyGenerator对象指定密钥生成算法。
该方法通过注册安全提供商列表,从最开始的首选供应商。一个新的keygenerator对象封装keygeneratorspi实施支持指定算法的第一供应商返回。
注意,注册商的列表可以通过Security.getProviders()检索方法。
algorithm -请求的密钥算法的标准名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyGenerator节。
KeyGenerator对象。
NullPointerException -如果指定的算法是无效的。
NoSuchAlgorithmException -如果没有提供程序支持一个指定的算法keygeneratorspi实施。
Provider
public static final KeyGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyGenerator对象指定密钥生成算法。
一个新的keygenerator对象封装keygeneratorspi实现从指定的提供程序返回。指定的提供程序必须在安全提供程序列表中注册。
注意,注册商的列表可以通过Security.getProviders()检索方法。
algorithm -请求的密钥算法的标准名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyGenerator节。
provider -提供者的名称。
KeyGenerator对象。
NullPointerException -如果指定的算法是无效的。
NoSuchAlgorithmException -如果一个指定的算法keygeneratorspi执行不可从指定的供应商。
NoSuchProviderException -如果指定的供应商不在安全提供商注册名单。
IllegalArgumentException -如果
provider是null或空。
Provider
public static final KeyGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyGenerator对象指定密钥生成算法。
一个新的keygenerator对象封装keygeneratorspi实现从指定的提供程序对象返回。请注意,指定的提供程序对象不必在提供者列表中注册。
algorithm -请求的密钥算法的标准名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation KeyGenerator节。
provider -供应商。
KeyGenerator对象。
NullPointerException -如果指定的算法是无效的。
NoSuchAlgorithmException -如果一个指定的算法keygeneratorspi执行不可从指定的提供程序对象。
IllegalArgumentException -如果
provider是空的。
Provider
public final Provider getProvider()
KeyGenerator提供者。
KeyGenerator对象的提供者
public final void init(SecureRandom random)
random -这种发生器随机源
public final void init(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
如果这个密钥生成器需要任意字节,这会让他们使用SecureRandom执行优先级最高的供应商作为随机源。(如果没有安装供应商提供的供应,实现一个系统提供的随机源将被使用。)
params -密钥生成参数
InvalidAlgorithmParameterException -如果给定的参数不合适这个密钥生成器
public final void init(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
params -密钥生成参数
random -这个密钥生成器随机源
InvalidAlgorithmParameterException -如果
params不当这个密钥生成器
public final void init(int keysize)
如果这个密钥生成器需要任意字节,这会让他们使用SecureRandom执行优先级最高的供应商作为随机源。(如果没有安装供应商提供的供应,实现一个系统提供的随机源将被使用。)
keysize -密钥大小。这是一个算法的具体指标,在指定的位数。
InvalidParameterException如果密钥大小是错误的或不支持。
public final void init(int keysize,
SecureRandom random)
keysize -密钥大小。这是一个算法的具体指标,在指定的位数。
random -这个密钥生成器随机源
InvalidParameterException如果密钥大小是错误的或不支持。
public final SecretKey generateKey()
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.