本篇文章给大家分享的是有关ASP.NET中怎么实现RSA加密,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
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加密,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。