RSA如何实现C#加密

RSA如何实现C# 加密,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联主营融安网站建设的网络公司,主营网站建设方案,成都app软件开发公司,融安h5小程序开发搭建,融安网站营销推广欢迎融安等地区企业咨询

RSA实现C# 加密首先我们来了解下什么是RSA ,它属于不对称加密,其原理就是使用一个公钥一个私钥,公钥可以公开用以加密,私钥严格保密用于解密,那么这样大家知道了RSA 适合于数据量不大的加密,比如加密对称加密的密钥。

RSA实现C# 加密

RSACryptoServiceProvider 的名称空间是:

System.Security.  CryptographyRSACryptoServiceProvider   rsaSend = new RSACryptoServiceProvider();   string plaintext = "明文"; //明文   byte[] ciphertext = rsaSend.Encrypt(  System.Text.Encoding.UTF8.GetBytes(plaintext), false);   //加密后   lbl.Text = Convert.ToBase64String(ciphertext);   //显示加密后的,为了显示不可见字符,使用的是 Base64 编码。

使用 RSACryptoServiceProvider() 创建 RSACryptoServiceProvider 实例时,自动产生密钥。

RSA 实际应用中是:接收方产生公钥和私钥,发送方用其公钥加密,再把加密后的内容发送给接收方。

CspParameters 的名称空间是:

System.Security.CryptographyCspParameters cpSend =   new CspParameters(); //Csp = Cryptography Service Provider  CspParameters cpReceive = new CspParameters();  cpSend.KeyContainerName = "SendTestContainer";  cpReceive.KeyContainerName =   "ReceiveTestContainer";   RSACryptoServiceProvider rsaSend =   new RSACryptoServiceProvider(cpSend); ;  RSACryptoServiceProvider rsaReceive =   new RSACryptoServiceProvider(cpReceive);   rsaSend.FromXmlString(rsaReceive.ToXmlString(false));   //发送方使用接收方给它的公钥进行加密   string plaintext =   "前几天我碰到一个朋友,约我跟马贼打架,  我立马答应了他,因为我觉得这件事好无聊。";  byte[] ciphertext =   rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(  plaintext), false); //加密后  byte[] decryption =   rsaReceive.Decrypt(ciphertext, false); //解密后   lbl.Width = 760;  lbl.Text = "";  lbl.Text +=   Convert.ToBase64String(ciphertext) + "﹤br /﹥";   //显示加密后的  lbl.Text +=   System.Text.Encoding.UTF8.GetString(decryption) + "﹤br /﹥";   //显示解密后的  lbl.Text +=   Server.HtmlEncode(rsaSend.ToXmlString(false)) + "﹤br /﹥";   //显示发送方公钥  lbl.Text +=   Server.HtmlEncode(rsaReceive.ToXmlString(true)) + "﹤br /﹥";   //显示接收方公钥和私钥  lbl.Text +=   Server.HtmlEncode(rsaReceive.ToXmlString(false)) + "﹤br /﹥";    //显示接收方公钥   rsaSend.PersistKeyInCsp = true; //密钥要保存起来  //rsaSend.Clear();  rsaReceive.PersistKeyInCsp = true;  //rsaReceive.Clear();

在上面的代码中,我们使用 CspParameters 将密钥保存起来,ToXmlString 和 FromXmlString 将接收方的公钥告诉给发送方。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


标题名称:RSA如何实现C#加密
文章出自:http://azwzsj.com/article/gchohi.html