AlgorithmParameterGenerator 类用于生成一组用于特定算法的参数。参数生成器是使用getInstance 工厂方法(返回给定类实例的静态方法)构造的。
将生成参数的对象可以用两种不同的方式初始化:独立于算法的方式,或特定于算法的方式:
- 独立于算法的方法利用了所有参数生成器共享“大小”和随机源的概念这一事实。大小的度量被所有算法参数普遍共享,尽管对不同的算法有不同的解释。例如,在参数为DSA算法中,“大小”对应于素数模数的大小(以位为单位)。使用这种方法时,特定于算法的参数生成值(如果有的话)默认为某些标准值,除非它们可以从指定大小派生。
- 另一种方法使用特定于算法的语义初始化参数生成器对象,这些语义由一组特定于算法的参数生成值表示。例如,要生成 Diffie-Hellman 系统参数,参数生成值通常由质数模数的大小和随机指数的大小组成,均以位数指定。
如果客户端没有显式初始化 AlgorithmParameterGenerator(通过调用 init 方法),每个提供者必须提供(并记录)默认初始化。有关 JDK 提供程序使用的 AlgorithmParameterGenerator 默认值的信息,请参阅 JDK 供应商 文档的密钥大小限制部分。但是,请注意默认值可能因不同的提供商而异。此外,提供程序的默认值可能会在未来版本中更改。因此,建议显式初始化 AlgorithmParameterGenerator 而不是依赖特定于提供程序的默认值。
Java 平台的每个实现都需要支持以下标准 AlgorithmParameterGenerator 算法和括号中的密钥大小:
DiffieHellman(1024, 2048)DSA(1024, 2048)
- 自从:
- 1.2
- 参见:
-
构造方法总结
构造方法修饰符构造方法描述protectedAlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm) 创建一个AlgorithmParameterGenerator对象。 -
方法总结
修饰符和类型方法描述final AlgorithmParameters生成参数。final String返回与此参数生成器关联的算法的标准名称。static AlgorithmParameterGeneratorgetInstance(String algorithm) 返回一个AlgorithmParameterGenerator对象,用于生成一组要与指定算法一起使用的参数。static AlgorithmParameterGeneratorgetInstance(String algorithm, String provider) 返回一个AlgorithmParameterGenerator对象,用于生成一组要与指定算法一起使用的参数。static AlgorithmParameterGeneratorgetInstance(String algorithm, Provider provider) 返回一个AlgorithmParameterGenerator对象,用于生成一组要与指定算法一起使用的参数。final Provider返回此算法参数生成器对象的提供者。final voidinit(int size) 为特定大小初始化此参数生成器。final voidinit(int size, SecureRandom random) 为特定大小和随机源初始化此参数生成器。final voidinit(AlgorithmParameterSpec genParamSpec) 使用一组特定于算法的参数生成值初始化此参数生成器。final voidinit(AlgorithmParameterSpec genParamSpec, SecureRandom random) 使用一组特定于算法的参数生成值初始化此参数生成器。
-
构造方法详细信息
-
AlgorithmParameterGenerator
protected AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm) 创建一个AlgorithmParameterGenerator对象。- 参数:
paramGenSpi- 代表provider- 供应商algorithm- 算法
-
-
方法详情
-
getAlgorithm
返回与此参数生成器关联的算法的标准名称。- 返回:
- 算法的字符串名称。
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm) throws NoSuchAlgorithmException 返回一个AlgorithmParameterGenerator对象,用于生成一组要与指定算法一起使用的参数。此方法遍历已注册安全提供程序的列表,从最首选的提供程序开始。返回一个新的
AlgorithmParameterGenerator对象,该对象封装了来自支持指定算法的第一个提供者的AlgorithmParameterGeneratorSpi实现。请注意,可以通过
Security.getProviders()方法检索已注册提供商的列表。- 实现注意事项:
-
JDK 参考实现还使用
jdk.security.provider.preferredSecurity属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供商顺序不同。 - 参数:
algorithm- 与此参数生成器关联的算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameterGenerator 部分。- 返回:
-
新的
AlgorithmParameterGenerator对象 - 抛出:
NoSuchAlgorithmException- 如果没有Provider支持指定算法的AlgorithmParameterGeneratorSpi实现NullPointerException- 如果algorithm是null- 参见:
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException 返回一个AlgorithmParameterGenerator对象,用于生成一组要与指定算法一起使用的参数。返回一个新的
AlgorithmParameterGenerator对象,它封装了来自指定提供者的AlgorithmParameterGeneratorSpi实现。指定的提供者必须在安全提供者列表中注册。请注意,可以通过
Security.getProviders()方法检索已注册提供商的列表。- 参数:
algorithm- 与此参数生成器关联的算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameterGenerator 部分。provider-Provider的字符串名称。- 返回:
-
新的
AlgorithmParameterGenerator对象 - 抛出:
IllegalArgumentException- 如果提供商名称为null或为空NoSuchAlgorithmException- 如果指定算法的AlgorithmParameterGeneratorSpi实现不能从指定提供者处获得NoSuchProviderException- 如果指定的提供者没有在安全提供者列表中注册NullPointerException- 如果algorithm是null- 参见:
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 返回一个AlgorithmParameterGenerator对象,用于生成一组要与指定算法一起使用的参数。返回一个新的
AlgorithmParameterGenerator对象,它封装了来自指定提供者的AlgorithmParameterGeneratorSpi实现。请注意,指定的提供者不必在提供者列表中注册。- 参数:
algorithm- 与此参数生成器关联的算法的字符串名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameterGenerator 部分。provider-Provider对象。- 返回:
-
新的
AlgorithmParameterGenerator对象 - 抛出:
IllegalArgumentException- 如果指定的提供者是nullNoSuchAlgorithmException- 如果无法从指定的Provider对象获得指定算法的AlgorithmParameterGeneratorSpi实现NullPointerException- 如果algorithm是null- 自从:
- 1.4
- 参见:
-
getProvider
返回此算法参数生成器对象的提供者。- 返回:
- 该算法参数生成器对象的提供者
-
init
public final void init(int size) 为特定大小初始化此参数生成器。为了创建参数,最高优先级安装提供程序的SecureRandom实现被用作随机源。 (如果没有安装的提供程序提供SecureRandom的实现,则使用系统提供的随机源。)- 参数:
size- 大小(位数)。
-
init
为特定大小和随机源初始化此参数生成器。- 参数:
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
生成参数。- 返回:
-
新的
AlgorithmParameters对象。
-