可以通过调用 getInstance 工厂方法(返回给定类实例的静态方法)之一来获取用于管理特定算法参数的 AlgorithmParameters 对象。
获得 AlgorithmParameters 对象后,必须使用适当的参数规范或参数编码通过调用 init 对其进行初始化。
通过调用 getParameterSpec 从 AlgorithmParameters 对象获得透明参数规范,通过调用 getEncoded 获得参数的字节编码。
Java 平台的每个实现都需要支持以下标准 AlgorithmParameters 算法:
AESDESedeDiffieHellmanDSA
- 自从:
- 1.2
- 参见:
-
构造方法总结
构造方法修饰符构造方法描述protectedAlgorithmParameters(AlgorithmParametersSpi paramSpi, Provider provider, String algorithm) 创建一个AlgorithmParameters对象。 -
方法总结
修饰符和类型方法描述final String返回与此参数对象关联的算法的名称。final byte[]以其主要编码格式返回参数。final byte[]getEncoded(String format) 返回以指定方案编码的参数。static AlgorithmParametersgetInstance(String algorithm) 返回指定算法的参数对象。static AlgorithmParametersgetInstance(String algorithm, String provider) 返回指定算法的参数对象。static AlgorithmParametersgetInstance(String algorithm, Provider provider) 返回指定算法的参数对象。final <T extends AlgorithmParameterSpec>
TgetParameterSpec(Class<T> paramSpec) 返回此参数对象的(透明)规范。final Provider返回此参数对象的提供者。final voidinit(byte[] params) 导入指定的参数,并按照参数的主要解码格式进行解码。final void从params中导入参数,按照指定的解码方案进行解码。final voidinit(AlgorithmParameterSpec paramSpec) 使用paramSpec中指定的参数初始化此参数对象。final StringtoString()返回描述参数的格式化字符串。
-
构造方法详细信息
-
AlgorithmParameters
创建一个AlgorithmParameters对象。- 参数:
paramSpi- 代表provider- 供应商algorithm- 算法
-
-
方法详情
-
getAlgorithm
返回与此参数对象关联的算法的名称。- 返回:
- 算法名称。
-
getInstance
返回指定算法的参数对象。此方法遍历已注册安全提供程序的列表,从最首选的提供程序开始。返回一个新的
AlgorithmParameters对象,该对象封装了支持指定算法的第一个提供者的AlgorithmParametersSpi实现。请注意,可以通过
Security.getProviders()方法检索已注册提供商的列表。必须使用适当的参数规范或参数编码,通过调用
init来初始化返回的参数对象。- 实现注意事项:
-
JDK 参考实现还使用
jdk.security.provider.preferredSecurity属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供商顺序不同。 - 参数:
algorithm- 请求的算法名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameters 部分。- 返回:
- 新的参数对象
- 抛出:
NoSuchAlgorithmException- 如果没有Provider支持指定算法的AlgorithmParametersSpi实现NullPointerException- 如果algorithm是null- 参见:
-
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- 如果algorithm是null- 参见:
-
getInstance
public static AlgorithmParameters getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 返回指定算法的参数对象。返回一个新的
AlgorithmParameters对象,它封装了来自指定提供者的AlgorithmParametersSpi实现。请注意,指定的提供者不必在提供者列表中注册。必须使用适当的参数规范或参数编码,通过调用
init来初始化返回的参数对象。- 参数:
algorithm- 请求的算法名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 AlgorithmParameters 部分。provider- 提供商的名称。- 返回:
- 新的参数对象
- 抛出:
IllegalArgumentException- 如果提供商是nullNoSuchAlgorithmException- 如果无法从指定的Provider对象获得指定算法的AlgorithmParameterGeneratorSpi实现NullPointerException- 如果algorithm是null- 自从:
- 1.4
- 参见:
-
getProvider
返回此参数对象的提供者。- 返回:
- 此参数对象的提供者
-
init
使用paramSpec中指定的参数初始化此参数对象。- 参数:
paramSpec- 参数说明。- 抛出:
InvalidParameterSpecException- 如果给定的参数规范不适合此参数对象的初始化,或者此参数对象已被初始化。
-
init
导入指定的参数,并按照参数的主要解码格式进行解码。如果存在此类参数的 ASN.1 规范,则参数的主要解码格式为 ASN.1。- 参数:
params- 编码参数。- 抛出:
IOException- 解码错误,或者此参数对象是否已初始化。
-
init
从params中导入参数,按照指定的解码方案进行解码。如果format是null,则使用参数的主要解码格式。如果存在针对这些参数的 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
以其主要编码格式返回参数。如果存在此类参数的 ASN.1 规范,则参数的主要编码格式为 ASN.1。- 返回:
- 使用其主要编码格式编码的参数。
- 抛出:
IOException- 关于编码错误,或者如果此参数对象尚未初始化。
-
getEncoded
返回以指定方案编码的参数。如果format是null,则使用参数的主要编码格式。如果存在这些参数的 ASN.1 规范,则主要编码格式为 ASN.1。- 参数:
format- 编码格式的名称。- 返回:
- 使用指定编码方案编码的参数。
- 抛出:
IOException- 关于编码错误,或者如果此参数对象尚未初始化。
-
toString
返回描述参数的格式化字符串。
-