创建一个RAS 非对称 公私密钥示例

static void Main(string[] args)
        {

            RSAParameters pub;
            RSAParameters priv;
            using (var rsa = new RSACryptoServiceProvider(512))
            {
                try
                {
                    //参数true 生成私钥,false生成公钥
                    pub = rsa.ExportParameters(false);
                    priv = rsa.ExportParameters(true);
                }
                finally
                {
                    rsa.PersistKeyInCsp = false;
                }
            }
            
            string s = "创建一个RAS 非对称 公私密钥示例";
            Console.WriteLine("需要加密的数据:" + s);

            byte[] messagebytes = Encoding.UTF8.GetBytes(s); //需要加密的数据 

            RSACryptoServiceProvider oRSA1 = new RSACryptoServiceProvider();
            oRSA1.ImportParameters(pub); //加密要用到公钥所以导入公钥 
            byte[] AOutput = oRSA1.Encrypt(messagebytes, false); //AOutput 加密以后的数据 
            Console.WriteLine("加密后的数据值:" + Convert.ToBase64String(AOutput));

            //私钥解密 
            RSACryptoServiceProvider oRSA2 = new RSACryptoServiceProvider();
            oRSA2.ImportParameters(priv);
            byte[] AInput = oRSA2.Decrypt(AOutput, false);
            string reslut = Encoding.UTF8.GetString(AInput);
            Console.WriteLine("解密后比的数据:" + reslut);

            Console.ReadKey();
        }

  

原文地址:https://www.cnblogs.com/leoxjy/p/9910506.html