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


相关推荐

  • iec104规约遥测遥信解析笔记「建议收藏」

    iec104规约遥测遥信解析笔记「建议收藏」最近在写104规约的解析暂时做一个笔记,先写一个遥信的后期再补全规约解析表如下:104规约解析 启动字符 1字节 取值 68H APCI应用规约控制信息 APDU应用规约数据单元 …

    2022年6月20日
    82
  • element关于table拖拽排序问题

    element关于table拖拽排序问题element关于table拖拽排序问题

    2022年6月16日
    47
  • SIGPIPE信号的产生及处理

    SIGPIPE信号的产生及处理SIGPIPE信号的产生在tcp四次挥手过程中,发送方向已经调用close()方法的socket一端写数据,会产生sigpipe错误。close():关闭读写两个方向,会导致sigpipe信号shutdown():可以选择关闭读/写方向,不会导致sigpipe信号SIGPIPE信号的解决方法直接忽略sigpipe信号voidhandle_for_sigpipe(){str…

    2022年7月17日
    20
  • 激活visio2013的产品密钥_visio激活确认id

    激活visio2013的产品密钥_visio激活确认id最近需要用Visio,由于密钥过期了,也不知道怎么重新输密钥,于是网上搜索,终于找到了一个方法。KMSpico工具,安装完后直接打开点击左边红色按钮就可以了。如图:最后附上工具链接https://pan.baidu.com/s/1Ya2twOrHkKLrPu9WgHf8_Q…

    2022年8月13日
    4
  • pycharm规范快捷键_pycharm修改快捷键

    pycharm规范快捷键_pycharm修改快捷键在写程序的过程中常常会有代码不整齐不规范的警告这时候用pycharn快速规整代码的快捷键为Ctrl+Alt+L即可解决

    2022年8月26日
    4
  • pycharm不会自动补全括号_pycharm代码提示

    pycharm不会自动补全括号_pycharm代码提示安装pycharm后,输入代码后,没有补全提示首先检查是否关闭了代码提示,如下图,将红框中“PowerSaveMode”前的勾去掉第二步,如果在输入某些代码时还是没有补全提醒,可能是配置好python环境则点击file->settings->projectInterpreter,如下图选择安装的python输入代码就会有提示了…

    2022年8月28日
    4

发表回复

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

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