温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RSA如何实现C# 加密

发布时间:2021-11-24 09:20:33 来源:亿速云 阅读:274 作者:柒染 栏目:编程语言

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

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 将接收方的公钥告诉给发送方。

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

向AI问一下细节
推荐阅读:
  1. RSA算法
  2. RSA加密

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rsa
AI