pfx文件解析私钥和公钥

pfx文件解析私钥和公钥最近和某行对接,发现私钥和公钥以pfx文件形式传给我们,需要我们自己进行读取,当时头就有点儿大(菜鸟,第一次接触,哎~~~)先说一下pfx证书与cer证书的区别PFX证书:由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。CER证书:证书中没有私钥,DER编码二进制

大家好,又见面了,我是你们的朋友全栈君。

最近和某行对接,发现私钥和公钥以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.net/133544.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java——从键盘输入数组

    Java——从键盘输入数组补充知识JavaScanner类java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。toString()方法用于返回以一个字符串表示的Number对象值。目录补充知识一、从键盘获取不限制长度的数组输出结果二、从键盘获取限制长度的数组输出结果三、参考一、从键盘获取不限制长度的数组importjava.util.Scanner;publicclassInputArrayNoLimitLength{ publicst

    2022年6月26日
    32
  • Ace在线代码编辑器使用「建议收藏」

    Ace在线代码编辑器使用「建议收藏」这边文章https://blog.csdn.net/liuxiao723846/article/details/106732401介绍了Ace的使用,本文围绕Ace的api深入介绍其具体功能。官网api使用文档:https://ace.c9.io/#nav=howto1、基本配置:ace有许多的配置项可供选择,通过这些配置项可以打造自己的个性编辑器你可以通过setTheme来设置主题,需要注意的是主题文件要存在,并且需要与ace.js同级,命名规则为theme-主题名.jsedito.

    2022年8月14日
    56
  • JVM系列文章(三):Class文件内容解析[通俗易懂]

    JVM系列文章(三):Class文件内容解析

    2022年1月29日
    40
  • Java之父:C语言是撑起一切的基石[通俗易懂]

    Java之父:C语言是撑起一切的基石[通俗易懂]为了忘却的纪念:无论任何领域,伟大的人物,永远不死!2011年10月9日,患有前列腺癌和心脏病的C语言之父丹尼斯·里奇离世。不知不觉,这位伟大的程序员已经离开我们已经有6年了。有人曾说,没有C语言之父,就没有乔布斯。C语言之父影响力其实不止这些。毫不夸张的说,没有C语言之父,就没有微软的Windows10和SurfaceBook,也没有安卓智能手机

    2022年7月8日
    25
  • fastjson教程 List转JSONArray以及JSONArray转List[通俗易懂]

    fastjson教程 List转JSONArray以及JSONArray转List[通俗易懂]1.fastjsonList转JSONArrayList<T>list=newArrayList<T>();JSONArrayarray=JSONArray.parseArray(JSON.toJSONString(list));2.fastjsonJSONArray转ListJSONArrayarray=newJSONArray();List<T>list=JSONObject.parseArray(array.toJSONSt..

    2022年6月17日
    172
  • dubbo被阿里放弃原因_阿里巴巴面试官必问的Dubbo灵魂拷问面试题,你能答出多少?…[通俗易懂]

    dubbo被阿里放弃原因_阿里巴巴面试官必问的Dubbo灵魂拷问面试题,你能答出多少?…[通俗易懂]前言Dubbo用起来就和EJB、WebService差不多,调用一个远程的服务(或者JavaBean)的时候在本地有一个接口,就像调用本地的方法一样去调用,它底层帮你实现好你的方法参数传输和远程服务运行结果传回之后的返回,就是RPC的一种封装当然,这个只是Dubbo的最基本的功能,它的特点是:它主要是使用高效的网络框架和序列化框架,让分布式服务之间调用效率更高。采用注册中心管理众多的服务接口地址,…

    2022年4月19日
    111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号