大家好,又见面了,我是你们的朋友全栈君。
最近和某行对接,发现私钥和公钥以pfx文件形式传给我们,需要我们自己进行读取,当时头就有点儿大(菜鸟,第一次接触,哎~~~)
先说一下pfx证书与cer证书的区别
PFX证书:由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。
CER证书:证书中没有私钥,DER 编码二进制格式的证书文件/BASE64 编码格式的证书文件,以cer作为证书文件后缀名。
综上所述:pfx证书文件中比cer文件中多了私钥。其他不多说看代码,pfx文件的生成方法及私钥和公钥导出方法(.net版)
/// <summary> /// 获取私钥 /// </summary> /// <param name=”path”>文件路径</param> /// <param name=”password”>文件秘钥</param> /// <returns></returns> public static string GetPrivateKey(string path,string password) { try { X509Certificate2 cert = new X509Certificate2(path, password, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); return cert.PrivateKey.ToXmlString(true); } catch { return “”; } }
/// <summary> /// 获取公钥 /// </summary> /// <param name=”path”>文件路径</param> /// <param name=”password”>文件秘钥</param> /// <returns></returns> public static string GetPublicKey(string path, string password) { try { X509Certificate2 cert = new X509Certificate2(path, password, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); return cert.PublicKey.Key.ToXmlString(false); } catch { return “”; } }
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133544.html原文链接:https://javaforall.cn
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有