java.security

接口
异常
java.lang.Object
  继承者 java.security.AlgorithmParameters

public class AlgorithmParameters
     
extends Object

此类用作密码参数的不透明表示形式。

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

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

通过调用 getParameterSpec 可以从 AlgorithmParameters 对象获取透明参数规范,可以通过调用 getEncoded 获取参数的字节编码。

从以下版本开始:
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, Provider provider)
          返回指定算法的参数对象。
static AlgorithmParameters getInstance(String algorithm, String provider)
          返回指定算法的参数对象。
<T extends AlgorithmParameterSpec>
T
getParameterSpec(Class<T> paramSpec)
          返回此参数对象的(透明)规范。
 Provider getProvider()
          返回此参数对象的提供者。
 void init(AlgorithmParameterSpec paramSpec)
          使用在 paramSpec 中指定的参数初始化此参数对象。
 void init(byte[] params)
          根据参数的基本解码格式导入指定的参数并对其解码。
 void init(byte[] params, String format)
          根据指定的解码方案从 params 导入参数并对其解码。
 String toString()
          返回描述参数的格式化字符串。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

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
返回指定算法的参数对象。

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

注意,已注册提供者列表可以通过 Security.getProviders() 方法获得。

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

参数:
algorithm - 所请求算法的名称。有关标准算法名称的信息,请参阅 Java Cryptography Architecture API Specification & Reference 的附录 A。
返回:
新的参数对象。
抛出:
NoSuchAlgorithmException - 如果没有任何 Provider 支持指定算法的 AlgorithmParametersSpi 实现。
另请参见:
Provider

getInstance

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

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

注意,已注册提供者列表可以使用 Security.getProviders() 方法获得。

参数:
algorithm - 所请求算法的名称。有关标准算法名称的信息,请参阅 Java Cryptography Architecture API Specification & Reference 的附录 A。
provider - 提供者的名称。
返回:
新的参数对象。
抛出:
NoSuchAlgorithmException - 如果无法从指定提供者获得指定算法的 AlgorithmParametersSpi 实现。
NoSuchProviderException - 如果指定提供者没有在安全提供者列表中注册。
IllegalArgumentException - 如果提供者的名称为 null 或空。
另请参见:
Provider

getInstance

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

返回一个封装 AlgorithmParametersSpi 实现的新 AlgorithmParameters 对象,该实现取自指定的 Provider 对象。注意,指定的 Provider 对象无需在提供者列表中注册。

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

参数:
algorithm - 所请求算法的名称。有关标准算法名称的信息,请参阅 Java Cryptography Architecture API Specification & Reference 的附录 A。
provider - 提供者的名称。
返回:
新的参数对象。
抛出:
NoSuchAlgorithmException - 如果无法从指定 Provider 对象获得指定算法的 AlgorithmParametersSpi 实现。
IllegalArgumentException - 如果 provider 为 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(Class<T> paramSpec)
                                                        throws InvalidParameterSpecException
返回此参数对象的(透明)规范。 paramSpec 标识应该在其中返回参数的规范类。例如,该类可以为 DSAParameterSpec.class,指示应该在 DSAParameterSpec 类的实例中返回参数。

参数:
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 - 如果发生编码错误,或者尚未初始化此参数对象。

toString

public final String toString()
返回描述参数的格式化字符串。

覆盖:
Object 中的 toString
返回:
描述参数的格式化字符串;如果尚未初始化此参数对象,则返回 null。