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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql数据库select语句用法_mysql数据库select查询语句简单用法「建议收藏」

    mysql数据库select语句用法_mysql数据库select查询语句简单用法「建议收藏」mysqlselect简单用法1、select语句可以用回车分隔$sql=”select*fromarticlewhereid=1″和$sql=”select*fromarticlewhereid=1″,都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时2、批量查询数据可以用in来实现$sql=”select*fromarticlewher…

    2022年5月3日
    54
  • CDN之GSLB详解

    CDN之GSLB详解CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等,而本文介绍的GSLB是属于CDN中的内容路由技术的关键技术。一、内容路由技术简介:CDN负载均衡系统实现C…

    2022年6月10日
    54
  • pycharm安装包时的那些事

    pycharm安装包时的那些事1.查找是否有.condarc文件.condarc以点开头,一般表示conda应用程序的配置文件,在用户的家目录windows:C:\users\username\linux:/home/username/问题一:无法找到condarc文件#创建condarc文件condaconfig–addchannelsr2.设置清华源#注意是http,不是https,以下是在命令行的代码,也可以直接在.condarc文件中修改condaconfig–add

    2022年5月17日
    35
  • 【js】Input事件

    【js】Input事件InputEvent常用事件触发的先后顺序如下:1keydown2keypress3textInput4input5keyupkeydown,keyup1全部浏览器支持2当用户按下/释放键盘上的任意键时触发3event.keyCode,返回键盘上按键对应的特定键码(兼容性:分号在Firefox,Opera上返回的是ASC

    2022年6月5日
    137
  • python学习方法总结(内附python全套学习资料)

    不要再问我python好不好学了我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!!——————–华丽的分割线——————————–…

    2022年4月16日
    49
  • setrequestproperty()怎么使用_url主要功能

    setrequestproperty()怎么使用_url主要功能设置头信息的,比如格式,UA等,不设置自然有默认的,一般的请求倒不需要去设置,可以去看看android里的DefaultHttpClient里也有设置头信息的setRequestProperty 主要是用来设置下面的功能Javacode?12connection.setRequestProperty(“Con

    2022年9月4日
    2

发表回复

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

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