java.lang.Object
java.security.AlgorithmParameters
这个类用作加密参数的不透明表示。
可以通过调用其中一个getInstance
工厂方法(返回给定类的实例的静态方法)来获取用于管理特定算法参数的AlgorithmParameters
对象。
一旦获取了AlgorithmParameters
对象,必须通过调用init
来初始化它,使用适当的参数规范或参数编码。
可以通过调用getParameterSpec
从AlgorithmParameters
对象获取透明参数规范,并通过调用getEncoded
获取参数的字节编码。
Java平台的每个实现都必须支持以下标准AlgorithmParameters
算法:
AES
DESede
DiffieHellman
DSA
- 自版本:
- 1.2
- 参见:
-
Constructor Summary
ModifierConstructorDescriptionprotected
AlgorithmParameters
(AlgorithmParametersSpi paramSpi, Provider provider, String algorithm) 创建一个AlgorithmParameters
对象。 -
Method Summary
Modifier and TypeMethodDescriptionfinal String
返回与此参数对象关联的算法的名称。final byte[]
以其主要编码格式返回参数。final byte[]
getEncoded
(String format) 返回指定方案中编码的参数。static AlgorithmParameters
getInstance
(String algorithm) 返回指定算法的参数对象。static AlgorithmParameters
getInstance
(String algorithm, String provider) 返回指定算法的参数对象。static AlgorithmParameters
getInstance
(String algorithm, Provider provider) 返回指定算法的参数对象。final <T extends AlgorithmParameterSpec>
TgetParameterSpec
(Class<T> paramSpec) 返回此参数对象的(透明)规范。final Provider
返回此参数对象的提供程序。final void
init
(byte[] params) 导入指定的参数并根据参数的主要解码格式对其进行解码。final void
从params
导入参数并根据指定的解码方案对其进行解码。final void
init
(AlgorithmParameterSpec paramSpec) 使用paramSpec
中指定的参数初始化此参数对象。final String
toString()
返回描述参数的格式化字符串。
-
Constructor Details
-
AlgorithmParameters
创建一个AlgorithmParameters
对象。- 参数:
-
paramSpi
- 代理 -
provider
- 提供程序 -
algorithm
- 算法
-
-
Method Details
-
getAlgorithm
返回与此参数对象关联的算法的名称。- 返回:
- 算法名称。
-
getInstance
返回指定算法的参数对象。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回一个新的
AlgorithmParameters
对象,封装了支持指定算法的第一个提供程序中的AlgorithmParametersSpi
实现。请注意,已注册提供程序的列表可以通过
Security.getProviders()
方法检索。返回的参数对象必须通过调用
init
来初始化,使用适当的参数规范或参数编码。- 实现注意:
-
JDK参考实现另外使用
jdk.security.provider.preferred
Security
属性来确定指定算法的首选提供程序顺序。这可能与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
返回描述参数的格式化字符串。
-