这是我的代码
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);
我的问题是如何获取公钥并存储在其他地方
答案 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);