3

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 オブジェクトに変換できますか?

4

1 に答える 1