开发中得到密钥文件,需要将密钥获取出来,转为String,然后存储在数据库中,后又需要获取然后转为PublicKey/PrivateKey使用,以下是针对一种农行公钥私钥类型的密钥做转换,不一定通用其他,因为还没试过
获取.cer公钥文件并读取
/********************************
*
* @Description 获取.cer公钥文件并读取
* @MethodName readPublicKey
* @param file
* @return java.lang.String
* @Author fancw
* @Date 2019/1/4 9:30
*
*******************************/
private static String readPublicKey(File file) {
String publicKeyString = null;
// 从指定流中获取数据并生成证书
X509Certificate cert = null;
try {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
cert = (X509Certificate) cf.generateCertificate(new FileInputStream(file));
PublicKey publicKey = cert.getPublicKey();
System.out.println("-----------------获取的公钥--------------------");
System.out.println(publicKey);
publicKeyString = new String(Base64.encodeBase64(publicKey.getEncoded()));
System.out.println("-----------------Base64encode后的公钥--------------------");
System.out.println(publicKeyString);
} catch (CertificateException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return publicKeyString;
}
获取.pfx文件并读取
/********************************
*
* @Description 获取.pfx文件并读取
* @MethodName readMerchantKey
* @param map
* @param file
* @param keystorePassword
* @return java.util.HashMap<java.lang.String,java.lang.String>
* @Author fancw
* @Date 2019/1/4 9:32
*
*******************************/
private static HashMap<String