公钥和私钥是用"ssh-keygen -t rsa"生成的,我把生成的公钥以字符串的形式传入下面的函数(从网上找的)就会报错。
public static PublicKey string2PublicKey(String pubStr) throws Exception{
ByteBuffer byteBuffer =
ByteBuffer.wrap(Base64.getDecoder().decode(pubStr));
byte[] keyBytes = byteBuffer.array();
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(keySpec);
return publicKey;
}
上面函数原本在提供的程序中传入的是“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVRiDkEKXy/KBTe+UmkA+feq1zGWIgBxkgbz7aBJGb5+eMKKoiDRoEHzlGndwFKm4mQWNftuMOfNcogzYpGKSEfC7sqfBPDHsGPZixMWzL3J10zkMTWo6MDIXKKqMG1Pgeq1wENfJjcYSU/enYSZkg3rFTOaBSFId+rrPjPo7Y4wIDAQAB”是没有问题的。
而我传入的是“AAAAB3NzaC1yc2EAAAADAQABAAABAQDVDZ+IhrOQo0ditlTlLTq7k2g1hFvw5o7TiUnkT4tKHIi2EtNloMknZgs3aBPdSb6a21ZaD0QPCRAnZ9/2Pcs4OvrRcwNzZBxLdjNGPrfitH0n62Y6HSp3LSvhRKa25AcBsgmQrAKoOveSunlZNKVCSuaBk4BayHb7QPRB8G8m9fKl3Dev9IY207kqUu6j8/iZB5hocK6rBkYlobyQcPVmBU9Y/ZcI7cnP4TiHnX7wi2KNRbm6yNYbRQzKKl6QSLpIPuRsqDmZvM0yoDJDj7Sio7f21oijosrlMvapjmGvFOn1Gcl6Sh0YYTGUXANkZqwWqkEpUs1l03s+OAEOBUQH”。请问问题在哪里,该如何将由ssh-keygen生成的密钥在java中用于加密和解密?