RSA公钥出口

时间:2010-05-06 22:44:21

标签: java security jce

这是我的代码

  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 个答案:

答案 0 :(得分:3)

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

将keyBytes保存为二进制文件或将其存储在某处。

执行此操作以重建密钥

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