成都创新互联网站制作重庆分公司

ASP.NET中怎么实现RSA加密

本篇文章给大家分享的是有关ASP.NET中怎么实现RSA加密,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联建站自2013年创立以来,先为蔡甸等服务建站,蔡甸等地企业,进行企业商务咨询服务。为蔡甸企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

RSA参数的产生:RSA参数的类型就是上面提到的RSAParameters 结构,查阅MSDN可知其包含了D、DP、DQ、Exponent、InverseQ、Modulus、P、Q八个字段。加密时仅需要Exponent和Modulus两个值,可看成公钥。解密时所有字段都需要,可看成私钥。下面这段程序显示了如何产生RSA两个参数:

以下为引用的内容:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();  RSAParameters rsarsaParamsExcludePrivate=rsa.ExportParameters(false);  RSAParameters rsarsaParamsIncludePrivate=rsa.ExportParameters(true);

RSACryptoServiceProvider类的ExportParameters(bool)方法用于导出RSA参数,true表示导出上述八个字段的“私钥”,false表示导出“公钥”。

使用RSA参数进行加密解密:这一步需要把上面两个参数导入到RSACryptoServiceProvider类对象中,再用它对数据进行加密。如下面的代码所示,我们可以写一个函数来完成加密过程:

以下为引用的内容:

Publicbyte[]RSAEncrypt(byte[]b)  {  RSACryptoServiceProviderrsa=newRSACryptoServiceProvider();  rsa.ImportParameters(rsaParamsExcludePrivate);//导入公钥  byte[]EncryptedData=rsa.Encrypt(DataToEncrypt,false);  returnEncryptedData;  }

解密时只要把rsa.ImportParameters(rsaParamsExcludePrivate)换成rsa.ImportParameters(rsaParamsExcludePrivate),再把Encrypt换成Decrypt就行了。

保存和加载RSA参数:RSA参数可以保存为XML格式,下面代码说明了如何保存和加载(只列出了关键部分)

保存:

以下为引用的内容:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();  StreamWriter writer=new StreamWriter(@"d:\PublicAndPrivateKey.xml");  string PPKeyXml=rsa.ToXmlString(true);//保存私钥  writer.Write(PPKeyXml);  writer.Close();  writer=new StreamWriter(@"d:\PublicKey.xml");  string PKeyXml=rsa.ToXmlString(false);//保存公钥  writer.Write(PKeyXml);  writer.Close();

读取:

以下为引用的内容:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();  StreamReader reader=new StreamReader(@"d:\PublicKey.xml");  string PKey=reader.ReadToEnd();  rsa.FromXmlString(PKey);  reader.Close();  StreamReader reader=new StreamReader(@"d:\PublicAndPrivateKey.xml");  string PPKey=reader.ReadToEnd();  reader.Close();

以上就是ASP.NET中怎么实现RSA加密,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


标题名称:ASP.NET中怎么实现RSA加密
文章URL:http://cxhlcq.cn/article/ihpjcs.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部