我有一个未加密的PKCS8编码文件,表示私钥。它可以是这些私钥类型之一 - RSA、DSA或EC。我在ASN1解码器(https://lapo.it/asn1js/)中查看了这些文件,可以在数据中看到类型(RSA、DSA或EC)。
是否有一种方法将PKC8私钥数据读入正确的私钥Java对象中,而不需要在代码中指定密钥类型,就像这样 -
是否有一种方法将PKC8私钥数据读入正确的私钥Java对象中,而不需要在代码中指定密钥类型,就像这样 -
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(pkcs8key);
KeyFactory factory = KeyFactory.getInstance("RSA"); // Avoid "RSA" here?
PrivateKey privateKey = factory.generatePrivate(spec);
有没有一种方法可以避免在KeyFactory.getInstance("RSA")
中指定算法?这不应该从PKCS8EncodedKeySpec
中确定吗,因为它在PKCS8数据中可用吗?
未加密的PKCS8数据示例及其ASN1解码,显示密钥类型 -
DSA - 链接
EC - 链接
RSA - 链接
PrivateKeyInfo
的类来加载此数据(即getEncoded()
返回的数据)。这就是我需要帮助的地方。如何使用通用 Java API 读取此私钥数据并获取算法类型,而无需专门编写 RSA/DSA/EC 的代码? - MediumOne