C#读取cer证书获取秘钥给字符串加密(RSA)

         /// <summary>
         /// 使用私钥加密字符串
         /// </summary>
         /// <param name="key">需加密的字符</param>
         /// <param name="keyPath">私钥证书文件地址</param>
         public string EncryptKey(string key,string keyPath)
        {
            X509Certificate2 c2 = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + "bin\\client.cer");

            string keyPublic2 = c2.PublicKey.Key.ToXmlString(false);

            string cypher2 = RSAEncrypt(keyPublic2, key);  // 加密
            return cypher2;
         }  

        /// <summary>
        /// RSA解密
        /// </summary>
        /// <param name="xmlPrivateKey"></param>
        /// <param name="m_strDecryptString"></param>
        /// <returns></returns>
        static string RSADecrypt(string xmlPrivateKey, string m_strDecryptString)
        {
            RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
            provider.FromXmlString(xmlPrivateKey);
            byte[] rgb = Convert.FromBase64String(m_strDecryptString);
            byte[] bytes = provider.Decrypt(rgb, false);
            return new UnicodeEncoding().GetString(bytes);
        }
        /// <summary>
        /// RSA加密
        /// </summary>
        /// <param name="xmlPublicKey"></param>
        /// <param name="m_strEncryptString"></param>
        /// <returns></returns>
        static string RSAEncrypt(string xmlPublicKey, string m_strEncryptString)
        {
            RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
            provider.FromXmlString(xmlPublicKey);
            byte[] bytes = new UnicodeEncoding().GetBytes(m_strEncryptString);
            return Convert.ToBase64String(provider.Encrypt(bytes, false));
        }

  

时间: 2024-10-22 18:25:31

C#读取cer证书获取秘钥给字符串加密(RSA)的相关文章

创建TLS证书和秘钥

创建TLS证书和秘钥 前言 执行下列步骤前建议你先阅读以下内容: 管理集群中的TLS:教您如何创建TLS证书 kubelet的认证授权:向您描述如何通过认证授权来访问 kubelet 的 HTTPS 端点. TLS bootstrap:介绍如何为 kubelet 设置 TLS 客户端证书引导(bootstrap). **注意:**这一步是在安装配置kubernetes的所有步骤中最容易出错也最难于排查问题的一步,而这却刚好是第一步,万事开头难,不要因为这点困难就望而却步. 如果您足够有信心在完全

部署k8s ssl集群实践2:cfssl配置根证书和秘钥

参考文档:https://github.com/opsnull/follow-me-install-kubernetes-cluster感谢作者的无私分享.集群环境已搭建成功跑起来.文章是部署过程中遇到的错误和详细操作步骤记录.如有需要对比参考,请按照顺序阅读和测试. 2.1##安装CFSSL使用CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 证书和秘钥文件,CA 是自签名的证书,用来签名后续创建的其它 TLS 证书 [[ema

SSH HTTPS 公钥、秘钥、对称加密、非对称加密、 总结理解

DES: Digital Encryption Standard. Obsolete standard. 单密钥算法,是信息的发送方采用密钥A进行数据加密,信息的接收方采用同一个密钥A进行数据解密. 单密钥算法是一个对称算法. 算法好在加/解速度快,密钥量短,采用对称加密 DSA: Digital Signature Algorithm. based on discrete logarithms computation. 用于签名 RSA: RSA 是一种非对称加解密算法. RSA 与 DSA

yan证书与秘钥 匹配

Openssl: make sure your certificate matches the private key To make sure the files tally, display the modulus value of each file: openssl rsa -noout -modulus -in FILE.key openssl req -noout -modulus -in FILE.csr openssl x509 -noout -modulus -in FILE.

Win7 文件加密存储操作后,如何在事后备份证书、秘钥

这个密钥的特点是只有在此系统下用此账户才可以修改,即便是你用此账户设置加密后删除此账户再重新建一个同名的账户依然无法修改.而且此密钥无法破解.所以一旦加密后,重装系统或者更换账户就无法修改了.唯一的办法是在重装系统前备份密钥[1].加密文件操作如下,右键文件夹-->属性-->常规选项卡里选择“高级”-->勾选“加密内容以便保护数据”. 当你加密文件,或者文件夹后,第一次加密时会提示你备份证书,如果你当时没有备份,那么这篇文章可以帮助你在事后重新备份个人的证书. 方法是: 1. 以管理员方

用Java实现RSA加解密及签名和验签(1)——.pem文件格式秘钥

一.***.pem文件格式的秘钥(获取秘钥:可通过文件读取内容或者直接打开文件复制内容),我这里是打开文件复制秘钥直接使用 1.准备秘钥对,通过openssl生成秘钥对,生成秘钥可参考:https://www.cnblogs.com/ouyanxia/p/12427955.html A_RSA_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDnPzYKf20JIza

Git秘钥生成以及Gitlab配置(附以下问题解决方法:Key is invalid Fingerprint cannot be generated)

在进行Git密钥配置时,总是提示: “The form contains the following errors:Key is invalidFingerprint cannot be generated” 如下图: 查找了不少资料,大部分说粘贴的字符与实际生成的不一致,例如windows环境下,如果有换行习惯带"\r\n",去除即可.几次尝试都不可以. 最后发现是粘贴的内容有问题,只黏贴了密钥,没有前贴前面的“ssh-rsa” 和后面的邮箱. 谨记:要粘贴pub密钥里面的所有内容(

xshell 秘钥

在xshell的客户端里面在工具的选项里面选择新建用户秘钥生成向导 秘钥内向默认是RSA的类型,秘钥长度默认也是2048,长度越长越难破解.一般有2048也就够了. 生成公钥 这边填写秘钥名称可以自己填写,输入用户秘钥的密码 这个就是生成的公钥. 保存公钥文件到指定的文件目录以防以后忘了. 到centos端如下配置: mkdir /root/.ssh chmod 700 /root/.ssh/ vim /root/.ssh/authorized_keys 这个文件原本没有需要自己写 打开新的配置

一台电脑存放多个git账户的多个rsa秘钥(转)

如何在一个电脑上存储多个git账户生成的多份rsa秘钥,实现多个账户同时使用配置的情况?今天,不幸又再次遇到这个问题. 问题描述 公司最近在开发一款开源产品,项目被托管在github上,但是公司内部一直使用的是gitlab,而且早就配了gitlab的rsa秘钥.之前的做法是重新生成一个github秘钥,覆盖掉之前的gitlab秘钥.每次切换过程就意味每次需要重新生成一份秘钥.只有两个账户的情况还能勉强接受下,某一天再想搞个小号刷副本时,这酸爽真的没法形容. 解决办法 今天总算想了一个办法,解决方