使用的是CFCA签发的用于银行间交换数据的证书,下载后直接添加到浏览器中

1、导出

从浏览器导出p12文件(包含私钥)

2、验证

两种方式:

openssl

代码(请注意alias别名是如何获取的):

package com.shengpay.mas.demo.cert;

import org.apache.commons.codec.binary.Base64;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.*;
import java.security.cert.*;
import java.security.cert.Certificate;
import java.util.Enumeration; /**
* Description: 读取P12格式的个人交换库
* <p>
* User: lishaohua
* Date: 2017/12/27 12:51
*/
public class P12Demo { public static void main(String[] args) throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException {
String keyStorePath = "D:/123456.pfx";
String password = "123456"; // 实例化密钥库,默认JKS类型
KeyStore ks = KeyStore.getInstance("PKCS12");
// 获得密钥库文件流
FileInputStream is = new FileInputStream(keyStorePath);
// 加载密钥库
ks.load(is, password.toCharArray());
// 关闭密钥库文件流
is.close(); //私钥
Enumeration aliases = ks.aliases();
String keyAlias = null;
if (aliases.hasMoreElements()){
keyAlias = (String)aliases.nextElement();
System.out.println("p12's alias----->"+keyAlias);
}
PrivateKey privateKey = (PrivateKey) ks.getKey(keyAlias, password.toCharArray());
String privateKeyStr = Base64.encodeBase64String(privateKey.getEncoded());
System.out.println("私钥------------->" + privateKeyStr); //公钥
Certificate certificate = ks.getCertificate(keyAlias);
String publicKeyStr = Base64.encodeBase64String(certificate.getPublicKey().getEncoded());
System.out.println("公钥------------->"+publicKeyStr);
}
}

  

3、使用

发布公钥或者双向认证等。

具体代码略...

最新文章

  1. ajax的表单提交,与传送数据
  2. linux 定时清理session
  3. 两种状态显示处理. enum , Linq AsEnumerable
  4. (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)
  5. [Tool] 透过PowerPoint Online在部落格文章里内嵌简报
  6. javaScript事件(三)事件对象
  7. 从零开始学android开发-获取控件
  8. mapreduce 实现矩阵乘法
  9. WinPcap编程(一)
  10. hyper-V 装ubuntu15.04
  11. WPF自定义Window样式(1)
  12. TensorFlow模型保存和加载方法
  13. gitlab的安装和基本维护
  14. pandas的set_index和reset_index方法
  15. GridView中如何实现自定义时间货币等字符串格式?
  16. springboot+mybatis+mysql创建简单web后台项目
  17. maven 工程mybatis自动生成实体类
  18. MacBook下java环境的搭建
  19. 解决:Invalid character found in the request target.The valid characters are defined in RFC 7230 and RFC3986
  20. SSL与TLS有什么区别

热门文章

  1. UGUI 用手柄或者键盘控制选择Scroll View中的游戏对象时,滚动条跟着移动
  2. LeetCode 860.柠檬水找零(C++)
  3. DEDE模板中如何运行php脚本和php变量的使用
  4. Quartz使用(1) - 初识quartz
  5. python3.4中自定义wsgi函数,make_server函数报错问题
  6. struts2的常量
  7. .Net程序员学习Linux最简单的方法(转载)
  8. [vijos]lxhgww的奇思妙想(长链剖分)
  9. Android getRunningTasks和getRunningAppProcesses失效
  10. 轻松解决 Eclipse Indigo 3.7 中文字体偏小,完美 Consolas 微软雅黑混合字体!(转)