|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 SecretKeyFactory
java.lang.Object javax.crypto.SecretKeyFactory
-
public class SecretKeyFactory
- extends Object
此类表示秘密密钥的工厂。
密钥工厂用来将密钥(类型 Key
的不透明加密密钥)转换为密钥规范(基础密钥材料的透明表示形式),反之亦然。秘密密钥工厂只对秘密(对称)密钥进行操作。
密钥工厂为双工模式,即其允许根据给定密钥规范(密钥材料)构建不透明密钥对象,或以适当格式检索密钥对象的基础密钥材料。
应用程序开发人员应参阅其提供程序的文档,找出 generateSecret
和 getKeySpec
方法支持的密钥规范。例如,"SunJCE" 提供程序提供的 DES 秘密密钥工厂支持 DESKeySpec
作为 DES 密钥的透明表示形式,并且该提供程序的 Triple DES 密钥的秘密密钥工厂支持 DESedeKeySpec
作为 Triple DES 密钥的透明表示形式。
- 从以下版本开始:
- 1.4
- 另请参见:
-
SecretKey
,DESKeySpec
,DESedeKeySpec
,PBEKeySpec
构造方法摘要 | |
---|---|
protected |
SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm) 创建一个 SecretKeyFactory 对象。 |
方法摘要 | |
---|---|
SecretKey |
generateSecret(KeySpec keySpec) 根据提供的密钥规范(密钥材料)生成 SecretKey 对象。 |
String |
getAlgorithm() 返回此 SecretKeyFactory 对象的算法名称。 |
static SecretKeyFactory |
getInstance(String algorithm) 生成指定秘密密钥算法的 SecretKeyFactory 对象。 |
static SecretKeyFactory |
getInstance(String algorithm, Provider provider) 根据指定的提供程序生成指定秘密密钥算法的 SecretKeyFactory 。 |
static SecretKeyFactory |
getInstance(String algorithm, String provider) 根据指定的提供程序生成指定秘密密钥算法的 SecretKeyFactory 。 |
KeySpec |
getKeySpec(SecretKey key, Class keySpec) 以请求的格式返回给定密钥对象的规范(密钥材料)。 |
Provider |
getProvider() 返回此 SecretKeyFactory 对象的提供程序。 |
SecretKey |
translateKey(SecretKey key) 将一个密钥对象(其提供程序未知或可能不受信任)转换为此密钥工厂的相应密钥对象。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
SecretKeyFactory
protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
-
创建一个 SecretKeyFactory 对象。
- 参数:
-
keyFacSpi
- 委托 -
provider
- 提供程序 -
algorithm
- 秘密密钥算法
方法详细信息 |
---|
getInstance
public static final SecretKeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
-
生成指定秘密密钥算法的
SecretKeyFactory
对象。如果默认提供程序包提供请求工厂的实现,则返回包含该实现的一个SecretKeyFactory
实例。如果默认的提供程序包中不存在请求的工厂,则将搜索其他提供程序包。 -
- 参数:
-
algorithm
- 请求的秘密密钥算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 - 返回:
-
指定密钥算法的
SecretKeyFactory
对象。 - 抛出:
-
NullPointerException
- 如果指定的算法为 null。 -
NoSuchAlgorithmException
- 如果默认提供程序包中或搜索到的任何其他提供程序包中不存在指定算法的秘密密钥工厂。
getInstance
public static final SecretKeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
-
根据指定的提供程序生成指定秘密密钥算法的
SecretKeyFactory
。 -
- 参数:
-
algorithm
- 请求的秘密密钥算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 -
provider
- 提供程序的名称。 - 返回:
-
指定密钥算法的
SecretKeyFactory
对象。 - 抛出:
-
NoSuchAlgorithmException
- 如果指定算法的秘密密钥工厂在指定的提供程序中不可用。 -
NullPointerException
- 如果指定的算法为 null。 -
NoSuchProviderException
- 如果指定的提供程序未配置。 -
IllegalArgumentException
- 如果provider
为 null。
getInstance
public static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
-
根据指定的提供程序生成指定秘密密钥算法的
SecretKeyFactory
。注:provider
不一定都需要注册。 -
- 参数:
-
algorithm
- 请求的秘密密钥算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 -
provider
- 提供程序。 - 返回:
-
指定密钥算法的
SecretKeyFactory
对象。 - 抛出:
-
NullPointerException
- 如果指定的算法为 null。 -
NoSuchAlgorithmException
- 如果指定算法的秘密密钥工厂在指定的提供程序中不可用。 -
IllegalArgumentException
- 如果provider
为 null。
getProvider
public final Provider getProvider()
-
返回此
SecretKeyFactory
对象的提供程序。 -
- 返回:
-
SecretKeyFactory
对象的提供程序
getAlgorithm
public final String getAlgorithm()
-
返回此
SecretKeyFactory
对象的算法名称。此名称与在某个创建此
SecretKeyFactory
对象的getInstance
调用中指定的名称相同。 -
- 返回:
-
此
SecretKeyFactory
对象的算法名称。
generateSecret
public final SecretKey generateSecret(KeySpec keySpec) throws InvalidKeySpecException
-
根据提供的密钥规范(密钥材料)生成
SecretKey
对象。 -
- 参数:
-
keySpec
- 秘密密钥的规范(密钥材料) - 返回:
- 秘密密钥
- 抛出:
-
InvalidKeySpecException
- 如果给定密钥规范不适合生成秘密密钥的秘密密钥工厂。
getKeySpec
public final KeySpec getKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException
- 以请求的格式返回给定密钥对象的规范(密钥材料)。
-
- 参数:
-
key
- 密钥 -
keySpec
- 所需的格式,密钥材料将以这种格式返回 - 返回:
- 以所需格式返回基础密钥规范(密钥材料)
- 抛出:
-
InvalidKeySpecException
- 如果所需密钥规范不适合给定的密钥(例如,与key
和keySpec
相关的算法不匹配,或者key
在加密硬件设备上引用一个密钥而keySpec
是基于软件的密钥规范),或者无法处理给定的密钥(例如,给定的密钥具有此秘密密钥工厂不支持的算法或格式)。