关键工厂用于将密钥 (类型为Key不透明加密密钥)转换为关键规范 (底层密钥材料的透明表示),反之亦然。
主要工厂是双向的。 也就是说,它们允许您根据给定的密钥规范(密钥材料)构建不透明的密钥对象,或者以适当的格式检索密钥对象的基础密钥材料。
同一密钥可能存在多个兼容密钥规范。 例如,可以使用DSAPublicKeySpec或X509EncodedKeySpec指定DSA公钥。 密钥工厂可用于在兼容的密钥规范之间进行转换。
以下是如何使用密钥工厂从其编码中实例化DSA公钥的示例。 假设Alice已收到Bob的数字签名。 Bob还向她发送了他的公钥(采用编码格式)来验证他的签名。 Alice然后执行以下操作:
X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey);
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);
Signature sig = Signature.getInstance("DSA");
sig.initVerify(bobPubKey);
sig.update(data);
sig.verify(signature);
需要Java平台的每个实现都支持以下标准KeyFactory算法:
DiffieHellman
DSA
RSA
这些算法在Java安全标准算法名称规范的KeyFactory section中描述。
请参阅实现的发行文档,以了解是否支持任何其他算法。
创建KeyFactory对象。
从提供的密钥规范(密钥材料)生成私钥对象。
从提供的密钥规范(密钥材料)生成公钥对象。
获取与此
KeyFactory关联的算法的名称。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
返回给定密钥对象的规范(密钥材料)。
返回此密钥工厂对象的提供者。
将提供者可能未知或可能不受信任的密钥对象转换为此密钥工厂的相应密钥对象。
创建KeyFactory对象。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回一个新的KeyFactory对象,该对象封装了第一个支持指定算法的Provider的KeyFactorySpi实现。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
将返回一个新的KeyFactory对象,该对象封装了指定提供程序的KeyFactorySpi实现。 必须在安全提供程序列表中注册指定的提供程序。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
将返回一个新的KeyFactory对象,该对象封装了指定Provider对象的KeyFactorySpi实现。 请注意,指定的Provider对象不必在提供程序列表中注册。
返回此密钥工厂对象的提供者。
获取与此
KeyFactory关联的算法的名称。
从提供的密钥规范(密钥材料)生成公钥对象。
从提供的密钥规范(密钥材料)生成私钥对象。
返回给定密钥对象的规范(密钥材料)。
keySpec标识应返回密钥材料的规范类。
例如,它可以是DSAPublicKeySpec.class ,以指示应在DSAPublicKeySpec类的实例中返回密钥材料。
将提供者可能未知或可能不受信任的密钥对象转换为此密钥工厂的相应密钥对象。
构造方法
变量
构造器
描述
protected
创建KeyFactory对象。变量和类型
方法
描述
从提供的密钥规范(密钥材料)生成公钥对象。
获取与此
KeyFactory关联的算法的名称。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
返回一个KeyFactory对象,该对象转换指定算法的公钥/私钥。
T
Key key, 类 keySpec)
返回给定密钥对象的规范(密钥材料)。
将提供者可能未知或可能不受信任的密钥对象转换为此密钥工厂的相应密钥对象。