楼主,我用openssl生成的RSA公私钥对为什么在java代码中读取公钥就出现异常,我生成公私钥的命令是这样的
genrsa -out private_rsa.pem 1024
rsa -in private_rsa.pem -pubout -out public_rsa.pem
rsa -pubin -in public_rsa.pem -RSAPublicKey_out
pkcs8 -topk8 -inform PEM -in private_rsa.pem -outform PEM -nocrypt
然后读取RSA公钥的代码是这样的
public static void main(String[] args) throws Exception {
String publicKey = "MIIBCgKCAQEAu5Vf38oBcdF1Jtikuh11Wq+uZENdI16eqtHuvKaWVQ90zoeWPpY+\n" +
"IuIJ5/G8VudBnOtHcyOru4WHWpd2FI4TJv2LjAXtRtZ3h2ELEcfLMF49lX3aJNsw\n" +
"u4iq+rpwj0JqKWtZwm7EP6fRc86hRFeNVGwjQyNTNsnBjFucf9fLUyXBkvqeI0T2\n" +
"2vKN2RzkR65wPKbH6TS0Q3rF7+9MyCtjVkg29Q6Pbc20JbTY/YPWTdUnXShScmht\n" +
"i3+67XbEzmbU2tMEYJu57uUslgGSOVxgtzyD1aOrcKBJKXmAzb05hTrTX8m7NGyh\n" +
"PtDTHriyee7QePmBNhB0d6pEZ7oM72ecbwIDAQAB";
X509EncodedKeySpec rsaKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKey));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey rsaPubKey = keyFactory.generatePublic(rsaKeySpec);
}
先做BASE64解密,然后再读取,可是在PublicKey rsaPubKey = keyFactory.generatePublic(rsaKeySpec);这一句就出现异常,提示:java.security.InvalidKeyException: IOException: algid parse error, not a sequence,我在网上查了好久也没找到答案,楼主有空帮我看下吗