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.