- java.lang.Object
-
- java.security.AlgorithmParameters
-
public class AlgorithmParameters extends Object
此类用作加密参数的不透明表示。可以通过调用
getInstance
工厂方法之一(返回给定类的实例的静态方法)来获取用于管理特定算法的参数的AlgorithmParameters
对象。获得
AlgorithmParameters
对象后,必须使用适当的参数规范或参数编码通过调用init
对其进行初始化。通过调用
getParameterSpec
从AlgorithmParameters
对象获得透明参数规范,并且通过调用getEncoded
获得参数的字节编码。需要Java平台的每个实现来支持以下标准
AlgorithmParameters
算法:-
AES
-
DES
-
DESede
-
DiffieHellman
-
DSA
- 从以下版本开始:
- 1.2
- 另请参见:
-
AlgorithmParameterSpec
,DSAParameterSpec
,KeyPairGenerator
-
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
AlgorithmParameters(AlgorithmParametersSpi paramSpi, Provider provider, String algorithm)
创建AlgorithmParameters对象。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 String
getAlgorithm()
返回与此参数对象关联的算法的名称。byte[]
getEncoded()
以主编码格式返回参数。byte[]
getEncoded(String format)
返回在指定方案中编码的参数。static AlgorithmParameters
getInstance(String algorithm)
返回指定算法的参数对象。static AlgorithmParameters
getInstance(String algorithm, String provider)
返回指定算法的参数对象。static AlgorithmParameters
getInstance(String algorithm, Provider provider)
返回指定算法的参数对象。<T extends AlgorithmParameterSpec>
TgetParameterSpec(类<T> paramSpec)
返回此参数对象的(透明)规范。Provider
getProvider()
返回此参数对象的提供者。void
init(byte[] params)
导入指定的参数并根据参数的主要解码格式对其进行解码。void
init(byte[] params, String format)
从params
导入参数,并根据指定的解码方案对其进行解码。void
init(AlgorithmParameterSpec paramSpec)
使用paramSpec
指定的参数初始化此参数对象。String
toString()
返回描述参数的格式化字符串。
-
-
-
构造方法详细信息
-
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对象,该对象封装来自第一个支持指定算法的Provider的AlgorithmParametersSpi实现。
请注意,可以通过
Security.getProviders()
方法检索已注册提供程序的列表。必须使用适当的参数规范或参数编码通过调用
init
初始化返回的参数对象。- Implementation Note:
-
JDK Reference Implementation还使用
jdk.security.provider.preferred
Security
属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()
返回的提供商的顺序不同。 - 参数
-
algorithm
- 请求的算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的AlgorithmParameters部分。 - 结果
- 新参数对象
- 异常
-
NoSuchAlgorithmException
- 如果没有Provider
支持指定算法的AlgorithmParametersSpi
实现 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getInstance
public static AlgorithmParameters getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
返回指定算法的参数对象。将返回一个新的AlgorithmParameters对象,该对象封装来自指定提供程序的AlgorithmParametersSpi实现。 必须在安全提供程序列表中注册指定的提供程序。
请注意,可以通过
Security.getProviders()
方法检索已注册提供商的列表。必须使用适当的参数规范或参数编码通过调用
init
初始化返回的参数对象。- 参数
-
algorithm
- 请求的算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的AlgorithmParameters部分。 -
provider
- 提供者的名称。 - 结果
- 新参数对象
- 异常
-
IllegalArgumentException
- 如果提供程序名称为null
或为空 -
NoSuchAlgorithmException
- 如果指定提供程序的指定算法的AlgorithmParametersSpi
实现不可用 -
NoSuchProviderException
- 如果指定的提供程序未在安全提供程序列表中注册 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getInstance
public static AlgorithmParameters getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
返回指定算法的参数对象。将返回一个新的AlgorithmParameters对象,该对象封装了指定Provider对象的AlgorithmParametersSpi实现。 请注意,指定的Provider对象不必在提供程序列表中注册。
必须使用适当的参数规范或参数编码通过调用
init
初始化返回的参数对象。- 参数
-
algorithm
- 请求的算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的AlgorithmParameters部分。 -
provider
- 提供者的名称。 - 结果
- 新参数对象
- 异常
-
IllegalArgumentException
- 如果提供者是null
-
NoSuchAlgorithmException
- 如果指定的算法的AlgorithmParameterGeneratorSpi
实现不可用于指定的Provider
对象 -
NullPointerException
- 如果algorithm
是null
- 从以下版本开始:
- 1.4
- 另请参见:
-
Provider
-
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
导入参数,并根据指定的解码方案对其进行解码。 如果format
为null,则使用参数的主要解码格式。 如果存在这些参数的ASN.1规范,则主要解码格式为ASN.1。- 参数
-
params
- 编码参数。 -
format
- 解码方案的名称。 - 异常
-
IOException
- 解码错误,或者此参数对象是否已初始化。
-
getParameterSpec
public final <T extends AlgorithmParameterSpec> T getParameterSpec(类<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
返回在指定方案中编码的参数。 如果format
为null,则使用参数的主要编码格式。 如果存在这些参数的ASN.1规范,则主要编码格式为ASN.1。- 参数
-
format
- 编码格式的名称。 - 结果
- 使用指定编码方案编码的参数。
- 异常
-
IOException
- 有关编码错误,或者此参数对象尚未初始化。
-
-