pem 到 PrivateKey,无需 bouncycaslte

发布于 2025-01-19 10:58:59 字数 993 浏览 6 评论 0原文

我有以下 bountycastle 代码,我需要将其切换为仅使用纯 java:

private PrivateKey getPrivateKeyFromCertificate(String certificate) throws Exception {
    PEMParser parser = new PEMParser(new StringReader(certificate));
    return new JcaPEMKeyConverter().getPrivateKey((PrivateKeyInfo) parser.readObject());
}

我尝试了以下操作:

private PrivateKey getPrivateKeyFromCertificate(String certificate) throws Exception {
    String pemBase64 = certificate
            .replace("-----BEGIN PRIVATE KEY-----", "")
            .replaceAll("\r", "")
            .replaceAll("\n", "")
            .replace("-----END PRIVATE KEY-----", ""));
    byte[] pemData = Base64.decodeBase64(pemBase64);
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    PrivateKey privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(pemData));
    return privateKey;
}

但出现以下错误: java.security.spec.InvalidKeySpecException:java.security.InvalidKeyException:无效的 RSA 私钥

I have the following bountycastle code and I need to switch it to use plain java only:

private PrivateKey getPrivateKeyFromCertificate(String certificate) throws Exception {
    PEMParser parser = new PEMParser(new StringReader(certificate));
    return new JcaPEMKeyConverter().getPrivateKey((PrivateKeyInfo) parser.readObject());
}

I tried this:

private PrivateKey getPrivateKeyFromCertificate(String certificate) throws Exception {
    String pemBase64 = certificate
            .replace("-----BEGIN PRIVATE KEY-----", "")
            .replaceAll("\r", "")
            .replaceAll("\n", "")
            .replace("-----END PRIVATE KEY-----", ""));
    byte[] pemData = Base64.decodeBase64(pemBase64);
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    PrivateKey privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(pemData));
    return privateKey;
}

But I get the following error:
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: Invalid RSA private key

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文