文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

RSA如何实现C# 加密

2023-06-17 22:09

关注

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯