密钥加载的使用 PKCS8EncodedKeySpec 使用说明

PKCS8EncodedKeySpec类继承EncodedKeySpec类,以编码格式来表示私钥。
PKCS8EncodedKeySpec类使用PKCS#8标准作为密钥规范管理的编码格式,该类的命名由此得来。
// 用编码格式来表示私钥
public class PKCS8EncodedKeySpec
extends EncodedKeySpec 

(1)方法详述

可通过如下方法实例化对象:
// 根据给定的编码密钥创建一个新的 PKCS8EncodedKeySpec
public PKCS8EncodedKeySpec(byte[] encodedKey)  

以下两种方法均依照PKCS #8标准:
// 返回按照 PKCS#8标准编码的密钥字节
public byte[] getEncoded()
// 返回与此密钥规范相关联的编码格式的名称。将得到字符串"PKCS#8"
public String getFormat()

(2)实现示例

下面根据前面介绍的实现示例来展示如何获得私钥对象。

通过获得的密钥对,我们来获得私钥密钥编码字节数组:
// 获得私钥密钥字节数组
byte[] privateKeyBytes = keys.getPrivate().getEncoded();

最后,我们将获得私钥对象:
// 实例化PKCS8EncodedKeySpec对象
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
// 实例化KeyFactory对象,并指定DSA算法
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
// 获得PrivateKey对象
PrivateKey privateKey = keyFactory.generatePrivate (keySpec);

X509EncodedKeySpec和PKCS8EncodedKeySpec两个类在加密解密环节中经常会用到。密钥很可能会以二进制方式存储于文件中,由程序来读取。这时候,就需要通过这两个类将文件中的字节数组读出转换为密钥对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值