java - 无效 key 异常 : invalid key format in Java using RSA Keys

标签 java web-applications rsa

我使用 java keygenerator 生成了一个公共(public) key :

Sun RSA public key, 1024 bits modulus: 106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607 public exponent: 65537

我从客户端发送了这个 key (通过复制、粘贴)并收到了与字符串完全相同的 key 。然后我尝试重建它:

byte [] bytes = publicKey.getBytes("UTF-8");
Key key = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));

然后我将从函数中返回。 我从形成 key 的第 2 行收到Invalid Key Exception

有什么想法吗?

最佳答案

您需要使用RSAPublicKeySpec

String modulus="106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607";
    RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger(modulus),BigInteger.valueOf(65537));

    Key key = KeyFactory.getInstance("RSA").generatePublic(spec);

关于java - 无效 key 异常 : invalid key format in Java using RSA Keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11952922/

相关文章:

java - 使用从 RSA 解密获得的解密 DES key

java - 如何获取 LinkedList 中的前一个元素?

java - onClickListener()的设置方式

java - 使用测试用例数组调用 java 方法

java - WSO2中如何设置Web APP的访问超时时间?

Javascript 计时器应在 Web 浏览器关闭后继续运行

Java LongStream求和int数组元素

php - 可以在没有框架的情况下创建网络应用程序吗?

java - 为什么 RSA 使用相同的 key 和消息会产生不同的结果?

c# - 来自公钥的 RSA 模数和指数