2010-05-06 122 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

这就是我一直在寻找 – 2010-05-06 23:45:26