InvalidKeyException:Java中使用RSA密钥的密钥格式无效
我使用java密钥生成器生成了一个公共密钥: Sun RSA公钥,1024位模数: 106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607 公众指数:65537 我从客户端发送了这个密钥(通过复制、粘贴),收到的密钥与字符串完全相同。然后我试着重建它:InvalidKeyException:Java中使用RSA密钥的密钥格式无效,java,web-applications,rsa,Java,Web Applications,Rsa,我使用java密钥生成器生成了一个公共密钥: Sun RSA公钥,1024位模数: 1063948776080187665377208014166559913451065359908507296059638544194501037167305993621541905372575972330140650153114991763591128164199659614694197560502909643433666873342457419052644076059040825734469542953095
byte [] bytes = publicKey.getBytes("UTF-8");
Key key = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));
然后我从函数返回。
我从第2行中获取无效密钥异常
有什么想法吗?您需要使用RSAPublicKeySpec
String modulus="106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607";
RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger(modulus),BigInteger.valueOf(65537));
Key key = KeyFactory.getInstance("RSA").generatePublic(spec);
您需要使用RSAPublicKeySpec
String modulus="106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607";
RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger(modulus),BigInteger.valueOf(65537));
Key key = KeyFactory.getInstance("RSA").generatePublic(spec);