当前位置: 首页 > article >正文

java读取微信p12证书信息

import java.security.*;
import java.security.cert.X509Certificate;
public class TestController {
/**
	 * 获取私钥
	 */
	public static void main(String args[]) throws Exception {
		String mchId = "商户号";
		KeyStore ks = KeyStore.getInstance("PKCS12");
		ks.load(getCertStream(""), mchId.toCharArray());
		String alias = ks.aliases().nextElement();
		X509Certificate certificate = (X509Certificate) ks.getCertificate(alias);
		java.util.Date notBefore = certificate.getNotBefore(); // 证书开始有效日期
		java.util.Date notAfter = certificate.getNotAfter(); // 证书结束有效日期
		String serialNo = certificate.getSerialNumber().toString(16).toUpperCase();
		PrivateKey privateKey = (PrivateKey) ks.getKey(alias, mchId.toCharArray());
		System.out.println("证书开始有效日期:" + notBefore);
		System.out.println("证书结束有效日期:" + notAfter);
		System.out.println("---------serialNo------" + serialNo);
		System.out.println("---------privateKey--------" + privateKey);


	}

	/**
	 * 读取证书
	 */
	public static InputStream getCertStream(String certPath) {
		byte[] certData = null;
		try {
		     //通过路径读取
            //InputStream certStream = new FileInputStream(new File(certPath));
            //放到项目resources目录读取
			InputStream certStream = Thread.currentThread().getContextClassLoader()
				.getResourceAsStream("apiclient_cert.p12");
			certData = IOUtils.toByteArray(certStream);
			certStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		ByteArrayInputStream certBis = new ByteArrayInputStream(certData);
		return certBis;
	}
}

http://www.kler.cn/a/161534.html

相关文章:

  • 鸿蒙原生应用/元服务开发-Stage模型能力接口(一)
  • 【Python3】【力扣题】383. 赎金信
  • python flask Jinja2模板学习
  • elementui el-table用span-method方法对相同的列名或行名进行合并
  • 在Windows 11中,把iPhone照片和视频导出来又快又简单,无需第三方软件
  • 数据结构 图的广度优先搜索和深度优先搜索
  • 画好一张规范的原理图,这些点你可要注意了!
  • Redis RedisHelper
  • 【LeeCode】454. 四数相加 II
  • dbug_hub 错误 使用多个ILA导致
  • STM32 定时器配置步骤
  • Java多线程编程深入解析——Java程序员,你掌握了多线程吗?【文末送书-03】
  • C语言指针——野指针
  • Python中如何判断List中是否包含某个元素
  • cocos creator “TypeError: Cannot set property ‘string‘ of null
  • 【原神游戏开发日志1】缘起
  • 低代码你需要了解一下
  • 【Android】查看keystore的公钥和私钥
  • API接口使用方法(封装好的电商平台)
  • 添加新公司代码的配置步骤-Part4