java.lang.Object
java.security.AlgorithmParameters
这个类用作加密参数的不透明表示。
可以通过调用其中一个getInstance工厂方法(返回给定类的实例的静态方法)来获取用于管理特定算法参数的AlgorithmParameters对象。
一旦获取了AlgorithmParameters对象,必须通过调用init来初始化它,使用适当的参数规范或参数编码。
可以通过调用getParameterSpec从AlgorithmParameters对象获取透明参数规范,并通过调用getEncoded获取参数的字节编码。
Java平台的每个实现都必须支持以下标准AlgorithmParameters算法:
AESDESedeDiffieHellmanDSA
- 自版本:
- 1.2
- 参见:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAlgorithmParameters(AlgorithmParametersSpi paramSpi, Provider provider, String algorithm) 创建一个AlgorithmParameters对象。 -
Method Summary
Modifier and TypeMethodDescriptionfinal 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()返回描述参数的格式化字符串。
-
Constructor Details
-
AlgorithmParameters
创建一个AlgorithmParameters对象。- 参数:
-
paramSpi- 代理 -
provider- 提供程序 -
algorithm- 算法
-
-
Method Details
-
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- 如果提供程序为null -
NoSuchAlgorithmException- 如果指定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
返回描述参数的格式化字符串。
-