知识大全 ASP.Net中如何实现RSA加密

Posted

篇首语:石可破也,而不可夺坚;丹可磨也,而不可夺赤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.Net中如何实现RSA加密相关的知识,希望对你有一定的参考价值。

ASP.Net中如何实现RSA加密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在我们实际运用中 加密是保证数据安全的重要手段 以前使用ASP时 对数据加密可以使用MD 和SHA 算法 这两种算法虽然快捷有效 但是无法对通过它们加密的密文进行反运算 即是解密 因此需要解密数据的场合 这两种方法就不太适合了 当然你也可以自己编写适用的加密和解密程序 不过这对编写者的数学水平有很高的要求 一般人是很难做到的    现在 随着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表示保存 私钥

cha138/Article/program/net/201311/15146

相关参考

知识大全 ASP.NET中使用MD5和SHA1算法加密

ASP.NET中使用MD5和SHA1算法加密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  你的

知识大全 ASP.NET中MD5与SHA1加密的几种方法

ASP.NET中MD5与SHA1加密的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  M

知识大全 技术应用-asp.net加密方法

  无论什么时候只要我们使用数据库开发网站我们就必须保护用户资料这非常必要  黑客可以盗窃口令个人隐私遭到严重的破坏最好的方法就是不储存原始密码而是加密后再放到数据库中  当我们想验证用户时我们只需将

知识大全 java非对称加密的源代码(RSA)

java非对称加密的源代码(RSA)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  鉴于rsa加

知识大全 JAVA里面RSA加密算法的使用

JAVA里面RSA加密算法的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  打算写这个类用于

知识大全 用javascript与java进行RSA加密与解密

用javascript与java进行RSA加密与解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Java生成RSA非对称型加密的公钥和私钥

Java生成RSA非对称型加密的公钥和私钥  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  非对称

知识大全 用ASP.NET加密Cookie数据

用ASP.NET加密Cookie数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Cookie

知识大全 使用ASP.Net加密Cookie[2]

使用ASP.Net加密Cookie[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 使用ASP.Net加密Cookie[1]

使用ASP.Net加密Cookie[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!