- java.lang.Object
-
- java.security.AlgorithmParameterGenerator
-
public class AlgorithmParameterGenerator extends Object
AlgorithmParameterGenerator
类用于生成一组要用于某种算法的参数。 使用getInstance
工厂方法(返回给定类的实例的静态方法)构造参数生成器。将生成参数的对象可以通过两种不同的方式进行初始化:以独立于算法的方式,或以特定于算法的方式进行初始化:
- 与算法无关的方法使用所有参数生成器共享“大小”和随机源的概念。 所有算法参数都可以共享大小的尺寸,尽管对于不同的算法来说,其尺寸是不同的。 例如,在DSA算法的参数的情况下,“大小”对应于素数模量的大小(以比特为单位)。 当使用此方法时,特定于算法的参数生成值(如果有)默认为某些标准值,除非它们可以从指定的大小派生。
- 另一种方法使用特定于算法的语义来初始化参数生成器对象,该语义由一组特定于算法的参数生成值表示。 为了生成Diffie-Hellman系统参数,例如,参数生成值通常由质数模数的大小和随机指数的大小组成,均以位数指定。
如果客户端没有显式初始化AlgorithmParameterGenerator(通过调用
init
方法),则每个提供程序都必须提供(并记录)默认的初始化。 有关JDK提供程序使用的AlgorithmParameterGenerator默认值的信息,请参阅JDK Providers文档的Keysize Restriction部分。 不过,请注意,不同提供商的默认值可能会有所不同。 此外,提供者的默认值可能会在将来的版本中更改。 因此,建议明确地初始化AlgorithmParameterGenerator,而不是依赖于提供者特定的默认值。Java平台的每个实现都需要支持以下标准的
AlgorithmParameterGenerator
算法,并在括号中键入:-
DiffieHellman
(DiffieHellman
) -
DSA
(DSA
)
- 从以下版本开始:
- 1.2
- 另请参见:
-
AlgorithmParameters
,AlgorithmParameterSpec
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm)
创建一个AlgorithmParameterGenerator对象。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 AlgorithmParameters
generateParameters()
生成参数。String
getAlgorithm()
返回此参数生成器关联的算法的标准名称。static AlgorithmParameterGenerator
getInstance(String algorithm)
返回一个AlgorithmParameterGenerator对象,用于生成与指定算法一起使用的一组参数。static AlgorithmParameterGenerator
getInstance(String algorithm, String provider)
返回一个AlgorithmParameterGenerator对象,用于生成与指定算法一起使用的一组参数。static AlgorithmParameterGenerator
getInstance(String algorithm, Provider provider)
返回一个AlgorithmParameterGenerator对象,用于生成与指定算法一起使用的一组参数。Provider
getProvider()
返回此算法参数生成器对象的提供者。void
init(int size)
初始化此参数生成器达一定大小。void
init(int size, SecureRandom random)
初始化此参数生成器以获得一定的大小和随机源。void
init(AlgorithmParameterSpec genParamSpec)
使用一组特定于算法的参数生成值初始化此参数生成器。void
init(AlgorithmParameterSpec genParamSpec, SecureRandom random)
使用一组特定于算法的参数生成值初始化此参数生成器。
-
-
-
构造方法详细信息
-
AlgorithmParameterGenerator
protected AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm)
创建一个AlgorithmParameterGenerator对象。- 参数
-
paramGenSpi
- 代表 -
provider
- 提供商 -
algorithm
- 算法
-
-
方法详细信息
-
getAlgorithm
public final String getAlgorithm()
返回此参数生成器关联的算法的标准名称。- 结果
- 算法的字符串名称。
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
返回一个AlgorithmParameterGenerator对象,用于生成与指定算法一起使用的一组参数。此方法遍历已注册的安全提供程序列表,从最优选的提供程序开始。 返回从支持指定算法的第一个Provider中封装AlgorithmParameterGeneratorSpi实现的新AlgorithmParameterGenerator对象。
请注意,可以通过
Security.getProviders()
方法检索注册提供商的列表。- Implementation Note:
-
JDK参考实现还使用
jdk.security.provider.preferred
Security
属性来确定指定算法的首选提供者顺序。 这可能与Security.getProviders()
返回的提供商的顺序不同。 - 参数
-
algorithm
- 此参数生成器关联的算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的AlgorithmParameterGenerator部分。 - 结果
-
新的
AlgorithmParameterGenerator
对象 - 异常
-
NoSuchAlgorithmException
- 如果没有Provider
支持指定算法的AlgorithmParameterGeneratorSpi
实现 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
返回一个AlgorithmParameterGenerator对象,用于生成与指定算法一起使用的一组参数。返回从指定提供程序封装AlgorithmParameterGeneratorSpi实现的新AlgorithmParameterGenerator对象。 指定的提供者必须在安全提供程序列表中注册。
请注意,注册提供商的列表可以通过
Security.getProviders()
方法检索。- 参数
-
algorithm
- 此参数生成器与之关联的算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的AlgorithmParameterGenerator部分。 -
provider
- 提供程序的字符串名称。 - 结果
-
新的
AlgorithmParameterGenerator
对象 - 异常
-
IllegalArgumentException
- 如果提供商名称为null
或为空 -
NoSuchAlgorithmException
- 如果指定算法的AlgorithmParameterGeneratorSpi
实现不能从指定的提供者获得 -
NoSuchProviderException
- 如果指定的提供程序未在安全提供程序列表中注册 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
返回一个AlgorithmParameterGenerator对象,用于生成与指定算法一起使用的一组参数。返回从指定的Provider对象封装AlgorithmParameterGeneratorSpi实现的新AlgorithmParameterGenerator对象。 请注意,指定的Provider对象不必在提供者列表中注册。
- 参数
-
algorithm
- 该参数生成器关联的算法的字符串名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的AlgorithmParameterGenerator部分。 -
provider
-Provider
对象。 - 结果
-
新的
AlgorithmParameterGenerator
对象 - 异常
-
IllegalArgumentException
- 如果指定的提供者是null
-
NoSuchAlgorithmException
- 如果指定的算法的AlgorithmParameterGeneratorSpi
实现从指定的Provider
对象不可用 -
NullPointerException
- 如果algorithm
是null
- 从以下版本开始:
- 1.4
- 另请参见:
-
Provider
-
getProvider
public final Provider getProvider()
返回此算法参数生成器对象的提供者。- 结果
- 该算法参数生成器对象的提供者
-
init
public final void init(int size)
初始化此参数生成器达一定大小。 要创建参数,最高优先级的安装提供程序的SecureRandom
实现被用作随机的来源。 (如果没有一个已安装的提供商提供SecureRandom
的实现,则使用系统提供的随机源。)- 参数
-
size
- 大小(位数)。
-
init
public final void init(int size, SecureRandom random)
初始化此参数生成器以获得一定的大小和随机源。- 参数
-
size
- 大小(位数)。 -
random
- 随机的来源。
-
init
public final void init(AlgorithmParameterSpec genParamSpec) throws InvalidAlgorithmParameterException
使用一组特定于算法的参数生成值初始化此参数生成器。 要生成参数,最高优先级的安装提供程序的SecureRandom
实现被用作随机的来源。 (如果没有一个已安装的提供商提供了一个SecureRandom
的实现,则使用系统提供的随机源。)- 参数
-
genParamSpec
- 算法特定参数生成值的集合。 - 异常
-
InvalidAlgorithmParameterException
- 如果给定的参数生成值不适合此参数生成器。
-
init
public final void init(AlgorithmParameterSpec genParamSpec, SecureRandom random) throws InvalidAlgorithmParameterException
使用一组特定于算法的参数生成值初始化此参数生成器。- 参数
-
genParamSpec
- 算法特定参数生成值的集合。 -
random
- 随机性的来源。 - 异常
-
InvalidAlgorithmParameterException
- 如果给定的参数生成值不适合该参数生成器。
-
generateParameters
public final AlgorithmParameters generateParameters()
生成参数。- 结果
- the new AlgorithmParameters object.
-
-