4

これが私のコードです

  KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
     KeyPair myPair = kpg.generateKeyPair();
     PrivateKey k = myPair.getPrivate();
     System.out.print(k.serialVersionUID);

     Cipher c = Cipher.getInstance("RSA");
     c.init(Cipher.ENCRYPT_MODE, myPair.getPublic());
     String myMessage = new String("Testing the message");

     byte[] bytes  = c.doFinal(myMessage.getBytes());
     String tt = new String(bytes);
     System.out.println(tt);
     Cipher d = Cipher.getInstance("RSA");
     d.init(Cipher.DECRYPT_MODE, myPair.getPrivate());
     byte[] temp = d.doFinal(bytes);
     String tst = new String(temp);
     System.out.println(tst);

私の質問は、公開鍵を取得して他の場所に保存する方法です

4

1 に答える 1

4
PublicKey pubKey = myPair.getPublic();
byte[] keyBytes = pubKey.getEncoded();

keyBytes をバイナリ ファイルとして保存するか、どこかに保存します。

これを実行してキーを再構築し、

 KeyFactory keyFactory = KeyFactory.getInstance("RSA");
 X509EncodedKeySpec pubKeySpec 
     = new X509EncodedKeySpec(keyBytes);
 PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);
于 2010-05-06T23:38:44.193 に答える