`
evget
  • 浏览: 141335 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类

ASP.Net中RSA加密的实现

阅读更多
文章关键字:|ASP.Net|RSA|加密|MD5|解密|公钥|私钥|

  在我们实际运用中,加密是保证数据安全的重要手段。以前使用ASP时,对数据加密可以使用MD5和SHA1算法,这两种算法虽然快捷有效,但是无法对通过它们加密的密文进行反运算,即是解密。因此需要解密数据的场合,这两种方法就不太适合了。当然你也可以自己编写适用的加密和解密程序,不过这对编写者的数学水平有很高的要求,一般人是很难做到的。

  现在,随着ASP.Net的推出,彻底改变了以前ASP下的编程模式。我们能够利用.Net Framework中的类提供的加密服务来保证数据安全。目前应用较为广泛的加密方法是使用RSA算法进行加密。在.Net Framework中与RSA加密算法相关的类主要有两个:RSA 类和RSACryptoServiceProvider 类。按照MSDN的说法RSA 类是“表示 RSA 算法的所有实现均从中继承的基类”,而RSACryptoServiceProvider 类是“使用加密服务提供程序 (CSP) 提供的 RSA 算法的实现执行不对称加密和解密”。另外,“表示 RSA 算法的标准参数”的RSAParameters 结构也是很重要的,它保存了RSA算法的参数。

  由于介绍RSA算法原理的文章或书籍比较多,大家可以参阅一下,在此就不复述了。下面着重介绍一下如何在ASP.Net中实现RSA加密。

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

以下为引用的内容:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
RSAParameters rsaParamsExcludePrivate=rsa.ExportParameters(false);
RSAParameters rsaParamsIncludePrivate=rsa.ExportParameters(true);

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

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

以下为引用的内容:
Public byte [ ] RSAEncrypt ( byte [ ] b)
{
  RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
  rsa.ImportParameters(rsaParamsExcludePrivate); //导入公钥
  byte [] EncryptedData=rsa.Encrypt(DataToEncrypt,false);
  return EncryptedData;
}

  解密时只要把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();

  ToXmlString和ExportParameters方法类似,false表示保存“公钥”,true表示保存“私钥”。

原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9167
分享到:
评论

相关推荐

    asp.net RSA 私钥加密公钥解密 能解 php Java 实现RSA加密互通

    在ASP.NET中实现RSA加密,通常使用.NET Framework提供的System.Security.Cryptography命名空间中的RSACryptoServiceProvider类。首先,你需要生成一对RSA密钥,这可以通过RSACryptoServiceProvider的Create()方法...

    在ASP.Net中实现RSA加密

    在ASP.Net中实现RSA加密是一项重要的安全性技术,用于保护数据的隐私和完整性。RSA是一种非对称加密算法,它的核心在于一对密钥:公钥和私钥。公钥可以公开,用于加密数据;私钥必须保密,用于解密数据。这种机制...

    基于.net的RSA私钥加密 公钥解密的源码

    RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因其发明者的名字首字母命名。...通过理解和运用"RSATest"中的源码,开发者可以更好地在自己的项目中实现安全的加密和解密功能。

    wxh 《ASP.Net中RSA加密

    下面将详细解释如何在ASP.Net环境中实现RSA加密。 1. **RSA原理** RSA加密基于两个大素数的乘积,这两个大素数只有公钥和私钥持有者知道。公钥可以公开,用于加密数据,而私钥必须保密,用于解密数据。加密过程是...

    [计算机项目]基于asp.net的RSA可视化算法程序系统设计与实现(源代码+项目报告).zip

    【标题】中的“[计算机项目]基于asp.net的RSA可视化算法程序系统设计与实现(源代码+项目报告)”表明这是一个关于计算机科学的项目,重点在于使用ASP.NET技术实现了一个RSA加密算法的可视化系统。这个系统不仅包括了...

    在ASP.Net中实现RSA加密的方法

    在我们实际运用中,加密是保证数据安全的重要手段。以前使用ASP时,对数据加密可以使用MD5和SHA1算法,这两种算法虽然快捷有效,但是无法对通过它们加密的...在.Net Framework中与RSA加密算法相关的类主要有两个:RSA

    ASP.NET url参数传递加密及解密方法

    在ASP.NET框架中,我们可以利用内置的加密解密工具来实现这一功能。以下是一些关于如何在ASP.NET中进行URL参数加密和解密的关键知识点: 1. **加密需求**:在URL中传递敏感信息时,如用户ID、搜索查询或任何个人...

    asp.net 生成rsa密钥对源码

    本源码包提供的功能是生成RSA密钥对,这对ASP.NET开发者尤其有用,因为.NET框架提供了强大的支持来处理RSA加密。通过生成RSA密钥对,开发者可以确保数据在传输过程中得到保护,防止被未经授权的第三方拦截或篡改。 ...

    asp.net MD5加密

    在ASP.NET中,我们可以使用System.Security.Cryptography命名空间下的MD5类来实现MD5加密。以下是一个简单的MD5加密示例: ```csharp using System; using System.Text; using System.Security.Cryptography; ...

    asp.net加密元件,反加密(源代码)

    本资源"asp.net加密元件,反加密(源代码)"提供了一套详细的加密和解密机制,特别适用于ASP.NET Web服务(webservice)中的应用。下面我们将深入探讨这些知识点: 1. ASP.NET 加密: ASP.NET 提供了多种加密选项,...

    C# 用RSA加密实现Web登录密码加密传输(网页口令传输加密)

    八成网站登录口令“裸身待缚” 电商类全军覆没,在用户口令传输过程中,仍然存在很多隐患。一般而言,用户在登录网站,输入用户名和密码之后,从用户电脑传输到网站服务器,会经过口令传输、口令存储认证等过程。而...

    基于ASP.NET的RSA可视化算法程序源码.zip

    【标题】"基于ASP.NET的RSA可视化算法程序源码.zip" 涉及到的核心技术是ASP.NET开发和RSA加密算法的实现,以及程序的可视化展示。ASP.NET是由微软公司推出的Web应用程序框架,用于构建动态网站、Web应用程序和服务。...

    基于ASP.NET的RSA可视化算法程序项目设计与实现(源代码+项目报告).zip

    该项目是一个综合性的软件开发实践,旨在通过ASP.NET技术实现RSA加密算法的可视化应用。RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于网络安全领域,如数据传输、数字签名等。在本项目中,开发者...

    asp.net字符串加密解密组件

    ASP.NET中常用的加密算法包括对称加密(如AES)和非对称加密(如RSA)。对称加密使用相同的密钥进行加密和解密,效率高但密钥管理复杂;非对称加密则有公钥和私钥之分,安全性更高但计算成本相对较大。 "My_Encrypt...

    asp.net加密解密示例

    本文将深入探讨ASP.NET中加密解密的基本概念、常用方法以及如何在实际项目中实现这些技术。 首先,我们需要理解加密和解密的概念。加密是将明文(可读数据)转换为密文(不可读数据)的过程,而解密则是将密文恢复...

    基于ASP.NET的RSA可视化算法程序系统设计与实现(源代码+项目报告).zip

    通过这个基于ASP.NET的RSA可视化算法程序系统,不仅可以学习到ASP.NET Web开发的基本技巧,还可以深入理解RSA加密算法的原理,同时提高对网络安全的认知。无论是对于初学者还是有一定经验的开发者,这样的实践项目都...

    基于asp.net的RSA可视化算法程序系统毕业设计与实现(源代码+项目报告).zip

    《基于ASP.NET的RSA可视化算法程序系统》是一个深入学习和实践Web开发以及密码学的优秀项目,它结合了ASP.NET技术与RSA加密算法,旨在提供一个直观易懂的加密算法演示平台。该项目不仅包含了完整的源代码,还有详细...

Global site tag (gtag.js) - Google Analytics