一 获取密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
二 保存公钥
因为公钥是二进制公开的,所以直接保存就可以了
FileUtils.writeByteArrayToFile(
new File("public.key"),keyPair.getPublic().getEncoded());
三 保存私钥
因为私钥的机密性比较高,所以要使用证书进行保存,我这里直接拿了百度的HTTPS证书来保存。
KeyStore jks = KeyStore.getInstance("PKCS12");
jks.load(null);
jks.setKeyEntry("rsa",privateKey,"123456".toCharArray(),getCertificate());
jks.store(new FileOutputStream("pkcs12.keystore"),"123456".toCharArray());
加载证书的代码如下
private static Certificate[] getCertificate() throws Exception {
String path = "C:\\Users\\Ryan\\Documents\\baidu.cer";
CertificateFactory instance = CertificateFactory.getIn