2010-05-06 3 views
4

Вот мой кодRSA с открытым ключом экспортирование

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
PublicKey pubKey = myPair.getPublic(); 
byte[] keyBytes = pubKey.getEncoded(); 

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

ли это восстановить ключ,

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

То, что я искал –

Смежные вопросы