Экспорт открытого ключа RSA - PullRequest
4 голосов
/ 07 мая 2010

Вот мой код

  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);

У меня вопрос, как я могу получить открытый ключ и хранить его в другом месте

1 Ответ

3 голосов
/ 07 мая 2010
PublicKey pubKey = myPair.getPublic();
byte[] keyBytes = pubKey.getEncoded();

Сохраните keyBytes как двоичный файл или сохраните его где-нибудь.

Сделайте это, чтобы восстановить ключ,

 KeyFactory keyFactory = KeyFactory.getInstance("RSA");
 X509EncodedKeySpec pubKeySpec 
     = new X509EncodedKeySpec(keyBytes);
 PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);
...