您的位置:首页 > 其它

pfx文件解析私钥和公钥

2015-10-14 11:00 337 查看
最近和某行对接,发现私钥和公钥以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 "";

            }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net pfx