模块 java.base

类 AlgorithmParameters

java.lang.Object
java.security.AlgorithmParameters

public class AlgorithmParameters extends Object
此类用作加密参数的不透明表示。

可以通过调用 getInstance 工厂方法(返回给定类实例的静态方法)之一来获取用于管理特定算法参数的 AlgorithmParameters 对象。

获得 AlgorithmParameters 对象后,必须使用适当的参数规范或参数编码通过调用 init 对其进行初始化。

通过调用 getParameterSpecAlgorithmParameters 对象获得透明参数规范,通过调用 getEncoded 获得参数的字节编码。

Java 平台的每个实现都需要支持以下标准 AlgorithmParameters 算法:

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

    • AlgorithmParameters

      protected AlgorithmParameters(AlgorithmParametersSpi  paramSpi, Provider  provider, String  algorithm)
      创建一个 AlgorithmParameters 对象。
      参数:
      paramSpi - 代表
      provider - 供应商
      algorithm - 算法
  • 方法详情

    • getAlgorithm

      public final String  getAlgorithm()
      返回与此参数对象关联的算法的名称。
      返回:
      算法名称。
    • getInstance

      public static AlgorithmParameters  getInstance(String  algorithm) throws NoSuchAlgorithmException
      返回指定算法的参数对象。

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

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

      必须使用适当的参数规范或参数编码,通过调用 init 来初始化返回的参数对象。

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

      public static AlgorithmParameters  getInstance(String  algorithm, String  provider) throws NoSuchAlgorithmException , NoSuchProviderException
      返回指定算法的参数对象。

      返回一个新的 AlgorithmParameters 对象,它封装了来自指定提供者的 AlgorithmParametersSpi 实现。指定的提供者必须在安全提供者列表中注册。

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

      必须使用适当的参数规范或参数编码,通过调用 init 来初始化返回的参数对象。

      参数:
      algorithm - 请求的算法名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameters 部分。
      provider - 提供商的名称。
      返回:
      新的参数对象
      抛出:
      IllegalArgumentException - 如果提供商名称为 null 或为空
      NoSuchAlgorithmException - 如果指定算法的 AlgorithmParametersSpi 实现无法从指定提供者处获得
      NoSuchProviderException - 如果指定的提供者没有在安全提供者列表中注册
      NullPointerException - 如果 algorithmnull
      参见:
    • getInstance

      public static AlgorithmParameters  getInstance(String  algorithm, Provider  provider) throws NoSuchAlgorithmException
      返回指定算法的参数对象。

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

      必须使用适当的参数规范或参数编码,通过调用 init 来初始化返回的参数对象。

      参数:
      algorithm - 请求的算法名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameters 部分。
      provider - 提供商的名称。
      返回:
      新的参数对象
      抛出:
      IllegalArgumentException - 如果提供商是 null
      NoSuchAlgorithmException - 如果无法从指定的 Provider 对象获得指定算法的 AlgorithmParameterGeneratorSpi 实现
      NullPointerException - 如果 algorithmnull
      自从:
      1.4
      参见:
    • getProvider

      public final Provider  getProvider()
      返回此参数对象的提供者。
      返回:
      此参数对象的提供者
    • init

      public final void init(AlgorithmParameterSpec  paramSpec) throws InvalidParameterSpecException
      使用 paramSpec 中指定的参数初始化此参数对象。
      参数:
      paramSpec - 参数说明。
      抛出:
      InvalidParameterSpecException - 如果给定的参数规范不适合此参数对象的初始化,或者此参数对象已被初始化。
    • init

      public final void init(byte[] params) throws IOException
      导入指定的参数,并按照参数的主要解码格式进行解码。如果存在此类参数的 ASN.1 规范,则参数的主要解码格式为 ASN.1。
      参数:
      params - 编码参数。
      抛出:
      IOException - 解码错误,或者此参数对象是否已初始化。
    • init

      public final void init(byte[] params, String  format) throws IOException
      params中导入参数,按照指定的解码方案进行解码。如果 formatnull ,则使用参数的主要解码格式。如果存在针对这些参数的 ASN.1 规范,则主要解码格式为 ASN.1。
      参数:
      params - 编码参数。
      format - 解码方案的名称。
      抛出:
      IOException - 解码错误,或者此参数对象是否已初始化。
    • getParameterSpec

      public final <T extends AlgorithmParameterSpec > T getParameterSpec(Class <T> paramSpec) throws InvalidParameterSpecException
      返回此参数对象的(透明)规范。 paramSpec 标识应在其中返回参数的规范类。例如,它可以是 DSAParameterSpec.class ,以指示应在 DSAParameterSpec 类的实例中返回参数。
      类型参数:
      T - 要返回的参数规范的类型
      参数:
      paramSpec - 应在其中返回参数的规范类。
      返回:
      参数说明。
      抛出:
      InvalidParameterSpecException - 如果请求的参数规范不适合此参数对象,或者此参数对象尚未初始化。
    • getEncoded

      public final byte[] getEncoded() throws IOException
      以其主要编码格式返回参数。如果存在此类参数的 ASN.1 规范,则参数的主要编码格式为 ASN.1。
      返回:
      使用其主要编码格式编码的参数。
      抛出:
      IOException - 关于编码错误,或者如果此参数对象尚未初始化。
    • getEncoded

      public final byte[] getEncoded(String  format) throws IOException
      返回以指定方案编码的参数。如果 formatnull ,则使用参数的主要编码格式。如果存在这些参数的 ASN.1 规范,则主要编码格式为 ASN.1。
      参数:
      format - 编码格式的名称。
      返回:
      使用指定编码方案编码的参数。
      抛出:
      IOException - 关于编码错误,或者如果此参数对象尚未初始化。
    • toString

      public final String  toString()
      返回描述参数的格式化字符串。
      重写:
      toString 在类 Object
      返回:
      描述参数的格式化字符串,如果此参数对象尚未初始化,则为 null