Java 使用RSAPublicKeySpec时出现InvalidKeySpec异常

Java 使用RSAPublicKeySpec时出现InvalidKeySpec异常,java,security,rsa,bouncycastle,public-key,Java,Security,Rsa,Bouncycastle,Public Key,我试图通过使用java.security.spec.RSAPublicKeySpec和java.security.KeyFactory来实例化java.security.PublicKey 但在运行以下行时: RSAPublicKeySpec publicKeySpec = new RSAPublicKeySpec(modulus, publicExponent); return KeyFactory.getInstance("RSA").generatePublic(publicKeySpec

我试图通过使用java.security.spec.RSAPublicKeySpec和java.security.KeyFactory来实例化java.security.PublicKey

但在运行以下行时:

RSAPublicKeySpec publicKeySpec = new RSAPublicKeySpec(modulus, publicExponent);
return KeyFactory.getInstance("RSA").generatePublic(publicKeySpec);
我总是从org.bouncycastle包中得到一个异常


这让我很困惑,因为RSAPublicKeySpec应该与Bouncy Castle加密库有任何关系吗?有人能告诉我我的代码有什么问题吗?

在JDK文档中,用于实例化KeyFactory

调用KeyFactory.getInstanceString算法时。这种方法 遍历已注册安全提供程序的列表,从 最受欢迎的供应商。封装 来自第一个支持 返回指定的算法

在您的环境中,bouncy castle crypto似乎是最受欢迎的提供商

我不知道JDK中的KeyFactory有任何默认服务提供程序接口。尽管有许多开源实现可用,但很少有&


他们刚刚发现了这一点,JDK中也有许多默认实现

你是如何实例化keyFactory的?啊,对不起。我将其实例化为:keyFactory=keyFactory.getInstanceRSA;
java.security.spec.InvalidKeySpecException: key spec not recognised 
at org.bouncycastle.jcajce.provider.asymmetric.util.BaseKeyFactorySpi.engineGeneratePublic(Unknown Source) 
at org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi.engineGeneratePublic(Unknown Source) 
at java.security.KeyFactory.generatePublic(KeyFactory.java:315)
... (25 more)