如何将PKCS#8编码的RSA密钥转换为Java中的PKCS#1?

时间:2011-03-11 09:34:06

标签: java security rsa jce pkcs#8

是否可以将PKCS#8编码的RSA私钥转换为PKCS#1? 我知道这可以通过openssl轻松完成,但可以用Java完成吗?

2 个答案:

答案 0 :(得分:2)

KeyFactoryPKCS8EncodedKeySpec(算法"RSA")一起使用,将PKCS#8编码的私钥字节转换为Java对象。

使用CipherSecretKeyFactory(算法"PBEWithMD5AndDES")与PBEKeySpecPBEParameterSpec创建PKCS#5编码内容。

答案 1 :(得分:1)

使用BouncyCastle 1.50

PrivateKeyInfo pkInfo = PrivateKeyInfo.getInstance(pkPair.getPrivateKey().getEncodedKey());
ASN1Encodable privateKeyPKCS1ASN1Encodable = pkInfo.parsePrivateKey();
ASN1Primitive privateKeyPKCS1ASN1 = privateKeyPKCS1ASN1Encodable.toASN1Primitive();

byte[] privateKeyPKCS1 = privateKeyPKCS1ASN1.getEncoded();