给定这个使用openssl生成并加密密码的
.pem
文件:-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,AC009672952033EB
2wegzxf3MtncXS1CY3c.....
....
....
-----END RSA PRIVATE KEY-----
如何在Java中获取一个PrivateKey
对象?我编写了以下代码,但是我找不到正确的方法来获取KeySpec
:
PrivateKey readFromPem(File keyFile, String password){
PemReader r = new PemReader(new InputStreamReader(new FileInputStream(keyFile)));
PemObject pemObject = r.readPemObject();
byte[] encodedKey = pemObject.getContent();
KeySpec keySpec = ???? // how to get this?
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey key = keyFactory.generatePrivate(keySpec);
return key;
}
我想我应该构建一个RSAPrivateKeySpec
,但我不知道怎么做。 我尝试了这个答案 和 这个其他答案中的方法,但在解析字节数组时都会导致错误。