【问题标题】:Convert an RSA PKCS1 private key string to a Java PrivateKey object将 RSA PKCS1 私钥字符串转换为 Java PrivateKey 对象
【发布时间】:2018-01-20 15:45:29
【问题描述】:

我有一个存储为字符串的 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);

【问题讨论】:

标签: java rsa private-key


【解决方案1】:

您可以将 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-----

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多