模块 java.base

类 AlgorithmParameterGenerator

java.lang.Object
java.security.AlgorithmParameterGenerator

public class AlgorithmParameterGenerator extends Object
AlgorithmParameterGenerator 类用于生成一组用于特定算法的参数。参数生成器是使用getInstance 工厂方法(返回给定类实例的静态方法)构造的。

将生成参数的对象可以用两种不同的方式初始化:独立于算法的方式,或特定于算法的方式:

  • 独立于算法的方法利用了所有参数生成器共享“大小”和随机源的概念这一事实。大小的度量被所有算法参数普遍共享,尽管对不同的算法有不同的解释。例如,在参数为DSA算法中,“大小”对应于素数模数的大小(以位为单位)。使用这种方法时,特定于算法的参数生成值(如果有的话)默认为某些标准值,除非它们可以从指定大小派生。
  • 另一种方法使用特定于算法的语义初始化参数生成器对象,这些语义由一组特定于算法的参数生成值表示。例如,要生成 Diffie-Hellman 系统参数,参数生成值通常由质数模数的大小和随机指数的大小组成,均以位数指定。

如果客户端没有显式初始化 AlgorithmParameterGenerator(通过调用 init 方法),每个提供者必须提供(并记录)默认初始化。有关 JDK 提供程序使用的 AlgorithmParameterGenerator 默认值的信息,请参阅 JDK 供应商 文档的密钥大小限制部分。但是,请注意默认值可能因不同的提供商而异。此外,提供程序的默认值可能会在未来版本中更改。因此,建议显式初始化 AlgorithmParameterGenerator 而不是依赖特定于提供程序的默认值。

Java 平台的每个实现都需要支持以下标准 AlgorithmParameterGenerator 算法和括号中的密钥大小:

  • DiffieHellman (1024, 2048)
  • DSA (1024, 2048)
这些算法在 Java 安全标准算法名称规范的 AlgorithmParameterGenerator 部分 中进行了描述。请查阅您的实施的发布文档以查看是否支持任何其他算法。
自从:
1.2
参见:
  • 构造方法详细信息

    • 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 对象,用于生成一组要与指定算法一起使用的参数。

      此方法遍历已注册安全提供程序的列表,从最首选的提供程序开始。返回一个新的 AlgorithmParameterGenerator 对象,该对象封装了来自支持指定算法的第一个提供者的 AlgorithmParameterGeneratorSpi 实现。

      请注意,可以通过 Security.getProviders() 方法检索已注册提供商的列表。

      实现注意事项:
      JDK 参考实现还使用 jdk.security.provider.preferred Security 属性来确定指定算法的首选提供程序顺序。这可能与 Security.getProviders() 返回的提供商顺序不同。
      参数:
      algorithm - 与此参数生成器关联的算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameterGenerator 部分。
      返回:
      新的 AlgorithmParameterGenerator 对象
      抛出:
      NoSuchAlgorithmException - 如果没有 Provider 支持指定算法的 AlgorithmParameterGeneratorSpi 实现
      NullPointerException - 如果 algorithmnull
      参见:
    • 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 - 如果 algorithmnull
      参见:
    • getInstance

      public static AlgorithmParameterGenerator  getInstance(String  algorithm, Provider  provider) throws NoSuchAlgorithmException
      返回一个 AlgorithmParameterGenerator 对象,用于生成一组要与指定算法一起使用的参数。

      返回一个新的 AlgorithmParameterGenerator 对象,它封装了来自指定提供者的 AlgorithmParameterGeneratorSpi 实现。请注意,指定的提供者不必在提供者列表中注册。

      参数:
      algorithm - 与此参数生成器关联的算法的字符串名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameterGenerator 部分。
      provider - Provider 对象。
      返回:
      新的 AlgorithmParameterGenerator 对象
      抛出:
      IllegalArgumentException - 如果指定的提供者是 null
      NoSuchAlgorithmException - 如果无法从指定的 Provider 对象获得指定算法的 AlgorithmParameterGeneratorSpi 实现
      NullPointerException - 如果 algorithmnull
      自从:
      1.4
      参见:
    • 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()
      生成参数。
      返回:
      新的 AlgorithmParameters 对象。