java读取pfx或P12格式的个人交换库公私钥
使用的是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、使用
发布公钥或者双向认证等。
具体代码略...
java读取pfx或P12格式的个人交换库公私钥的更多相关文章
- Java 读取Word文本/段落格式属性
本文介绍通过Java后端程序代码来读取Word文本和段落格式的方法. 本次测试环境如下: Word版本:2013 编译环境:IntelliJ IDEA2018 Work库:free spire.doc ...
- 原生java读取存储为xml格式的数据,并存储到java bean里
一.举例读取的文件为:X-bond可交易债券信息_20180917.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- EasyUI+JSP之java读取数据库后JSON格式数据的返回及调用
做作业工程中遇到一些问题,特此记录一下 解决的问题:使用EasyUI框架搭建简单学生管理系统(数据库增删改查)操作时配合JSP,不知道如何把从数据库获得的数据封装成JSON格式并传回前端JSP并进行展 ...
- python文件读取,替换(带格式,python lib 库)
import os, time import sys import re def read_old_part(filename, start, end): content = [] recording ...
- 读取P12格式证书的密钥
不想存储p12证书内容,只想存储证书密钥,可通过以下实现读取证书的密钥出来: package com.zat.ucop.service.util; import org.apache.commons. ...
- Java读取UTF-8格式文件第一行出现乱码——问号“?”及解决 And Java读带有BOM的UTF-8文件乱码原因及解决方法
測试样例: Java读取UTF-8的txt文件第一行出现乱码"?"及解决 test.txt文件内容: 1 00:00:06,000 --> 00:00:06,010 < ...
- java读取excel或者csv时日期格式数据处理
背景:最近写一个通过excel批量导入数据的功能,里面含有时间,但是java读取之后把时间转为了距离1990年1月1号的天数,比如excel中时间为2018/9/16 18:30,java读取之后变成 ...
- Java读取Level-1行情dbf文件极致优化(2)
最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...
- java读取properties配置文件信息
一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...
随机推荐
- Trees on the level UVA - 122 (二叉树的层次遍历)
题目链接:https://vjudge.net/problem/UVA-122 题目大意:输入一颗二叉树,你的任务是按从上到下,从左到右的顺序输出各个结点的值.每个结点都按照从根节点到它的移动序列给出 ...
- Perf -- Linux下的系统性能调优工具,第 2 部分 特殊用法以及内核调优示例
https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/ 本文内容简介 之前介绍了 perf 最常见的一些用法,关注于 Linux 系统上应用程序 ...
- 用javascript实现禁止页面后退返回上一页的代码
用javascript实现禁止页面后退返回上一页的代码: 有时候我们需要用户在点击了如下一步的按钮时,页面跳转到了下一个页面,这时想不允许用户返回后退到上一页,可以采用下面的方法: 在需要跳转的页 ...
- Python札记1--基础
Python语言虽然简单,但相关的细节仍需要注意,本系列札记,旨在记录学习python过程中需要注意的相关知识点或相关难点的理解. 1. 列表 a. python的列表list中元素的类型可以不同 b ...
- CentOS7中添加新硬盘
cp /etc/fstab /etc/fstab.bak echo /dev/vdb1 /mnt/disk1 ext4 defaults 0 0 >> /etc/fstab mkdir ...
- MVC中的验证码
下面是一个完整的mvc controller类 public class CodeController : Controller { private const string CODE = " ...
- 浅谈windows.onload()与$(document).ready()
浏览器加载完DOM后,会通过javascript为DOM元素添加事件,在javascript中,通常使用window.onload()方法. 在jquery中,则使用$(document).ready ...
- Stimulsoft Reports送2年免费升级与技术支持
慧都十年大促,与著名报表控件商Stimulsoft联合推出独家活动,即日起12月31日前,购买指定授权的Stimulsoft Reports除了获得本身1年的免费升级外,还加送2年免费升级与技术支持, ...
- StackTrack for debug
System.Diagnostics.Debug.WriteLine("Serial port. {0},{1}", this.GetType().FullName, new Sy ...
- 【起航计划 021】2015 起航计划 Android APIDemo的魔鬼步伐 20 App->Intents createChooser
Intents 这个例子的代码非常简单: public void onGetMusic(View view) { Intent intent = new Intent(Intent.ACTION_GE ...