0

我使用 java keygenerator 生成了一个公共:

孙RSA公共密钥,1024位模数:106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607公用指数:65537

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

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

然后我从函数中返回。我Invalid Key Exception从第 2 行开始,在那里我形成了 Key。

有任何想法吗?

4

1 回答 1

3

您需要使用 RSAPublicKeySpec

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

    Key key = KeyFactory.getInstance("RSA").generatePublic(spec);
于 2012-08-14T13:39:47.307 回答