将 RSA PKCS1 私钥字符串转换为 Java PrivateKey 对象

2024-04-19

我有一个存储为字符串的 RSA 私钥,我需要将其转换为 PrivateKey 对象以便与 API 一起使用。我可以找到人们从私钥文件转换为字符串的示例,但不能找到相反的方式。

我设法将它转换为 PrivateKey 对象,但它是 PKCS8,当我需要它是 PKCS1 时,我知道 Java 没有 PKCS1EncodedKeySpec

byte[] key64 = Base64.decodeBase64(privateKeyString.getBytes());
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
KeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);

您可以将 pkcs#1 转换为 pkcs#8

openssl pkcs8 -topk8 -in server.key -nocrypt -out server_pkcs8.key
cat server_pkcs8.key 
-----BEGIN PRIVATE KEY-----
base64_encode xxx
-----END PRIVATE KEY-----
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 RSA PKCS1 私钥字符串转换为 Java PrivateKey 对象 的相关文章

随机推荐