cygwin で SSh-keygen を使用して生成した RSA 公開鍵を含む文字列を java.security PublicKey タイプに変換する際に問題が発生しています。
キーを変換するために使用しているコードは次のとおりです
BASE64Decoder decoder = new BASE64Decoder();
byte[] privBytes = decoder.decodeBuffer(publicKey);
KeyFactory keyFact = KeyFactory.getInstance("RSA");
PublicKey testKey = keyFact.generatePublic(new X509EncodedKeySpec(publicBytes));
このコードは私にこのエラーを与えます
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format
このキー (cygwin で生成) と共に使用する場合
AAAAB3NzaC1yc2EAAAADAQABAAABAQDQQ8K7FN3IvoLsgxyTHHidrhrp/4L1ts7fc5ooKi2lAw8pXYSseTH/ScS7qCCTTsBJ0DgdHdzjaHn8dTpOvud5Za0eiJtbPSyFmkNIwGYLXI/AnzF0sRNbSGmBeB/jQtRJBTS+1x5sVwOwGdx1jTx5m7yTmBjn9+/Hftke6UBY9dLKcRph2gpyRx1OWSFKC+mheBjpwGgapQNHFTPvhgQPp99HdGufBDiQWw4o4bIE7XIEyMpIt6KAsucbWSh67zYTaQjYzj8Bu3asCIlBy7KfdLWgrtgxddwtPjfYL3ZtGmhd3IiIwRdHQFHrJP0KbEejhJQF+2ApqFhL8yk+O3wL
ただし、Java keygenerator を使用してキー ペアを作成するときはいつでも、それを文字列に変換して保存し、同じ方法を使用して読み取ることができ、機能します。このような公開鍵を取得します
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCTK5ad+TnBo/N6FbPtFOtE4crvXkQUimp+gLLp
OA8QRpzTFD9zIV42695rYqmAHZRfBPA8TjEj9WXw0yRAIL3+hbHmOnLyrLfJ+5pD05B7ul83OKgV
mkLtZQacTNjX2iIeNd08ecP4+Chh/uE2dIRxHX1W00TZINySqxgW1cpjiwIDAQAB
だから、私の質問は、2 つのキーの違いは何ですか?どうすれば最初のキーを使用可能な PublicKey オブジェクトに変換できますか?