`
zendj
  • 浏览: 116165 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

用.NET非对称加密算法实例

阅读更多

用.NET非对称加密算法实例



【摘 要】一个简单的使用.NET非对称加密算法的例子, 本例的程序很简单,仅用于说明如何在.NET里面使用非对称(RSA)算法。

  

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

/// <summary>
/// 一个简单的使用.NET非对称加密算法的例子
/// 本例的程序很简单,仅用于说明如何在.NET里面使用非对称(RSA)算法。
/// Kwanhong 2005.9
/// </summary>
class Class1
{
public static void Main(string[] args)
{
Class1 c=new Class1();
c.StartDemo();
}

public void StartDemo()
{
//RSA的加解密过程:
// 有 rsa1 和 rsa2 两个RSA对象。
// 现在要 rsa2 发送一段信息给 rsa1, 则先由 rsa1 发送“公钥”给 rsa2
// rsa2 获取得公钥之后,用来加密要发送的数据内容。
// rsa1 获取加密后的内容后,用自己的私钥解密,得出原始的数据内容。

RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider();

string publickey;
publickey=rsa1.ToXmlString(false); //导出 rsa1 的公钥

string plaintext;
plaintext="你好吗?这是用于测试的字符串。"; //原始数据
Console.WriteLine("原始数据是:\n{0}\n",plaintext);

rsa2.FromXmlString(publickey); //rsa2 导入 rsa1 的公钥,用于加密信息

//rsa2开始加密
byte[] cipherbytes;
cipherbytes=rsa2.Encrypt(
Encoding.UTF8.GetBytes(plaintext),
false);

/*//////////////////////////////////////////////*/
Console.WriteLine("加密后的数据是:");
for(int i=0; i< cipherbytes.Length; i++)
{
Console.Write("{0:X2} ",cipherbytes[i]);
}
Console.WriteLine("\n");
/*//////////////////////////////////////////////*/

//rsa1开始解密
byte[] plaintbytes;
plaintbytes = rsa1.Decrypt(cipherbytes,false);

Console.WriteLine("解密后的数据是:");
Console.WriteLine(Encoding.UTF8.GetString(plaintbytes));

Console.ReadLine();
}

}

分享到:
评论

相关推荐

    Java中的Blowfish对称密钥加密算法类和实例

    Java中的Blowfish对称密钥加密算法类和实例

    Java加密与解密的艺术配书源代码

    对称加密网络应用242 7.8 小结254 第8章高等数据加密—非对称加密算法256 8.1 非对称加密算法简述256 8.2 密钥交换算法—DH 258 8.3 典型非对称加密算法—RSA 269 8.4 常用非对称加密算法—ElGamal277 8.5 实例:非...

    Java加密与解密的艺术

    对称加密网络应用2427.8 小结254第8章高等数据加密—非对称加密算法2568.1 非对称加密算法简述2568.2 密钥交换算法—DH 2588.3 典型非对称加密算法—RSA 2698.4 常用非对称加密算法—ElGamal2778.5 实例:非对称加密...

    RSA签名算法实例

    RSA签名算法实例,使用RSA的SignHash和VerifyHash可以同样做到SignData和VerifyData,事实上还有一种方法进行公钥加密的签名 认证。就是.NET中的AsymmetricSignatureFormatter和AsymmetricSignatureDeformatter。直 ...

    asp.net知识库

    .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP.Net中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 ...

    asp.net技术内幕(1)

    21.2.2 申请服务器证书 21.2.3 安装服务器证书 21.3 在ASP.NET页面中使用SSL 21.4 使用.NET加密类 21.4.1 使用散列算法 21.4.2 使用对称加密算法 21.4.3 使用不对称加密 21.5 小结 ...

    ASP.NET Night Words

    20.3 不对称加密 398 20.4 加密签名 402 20.5 加密哈希 403 20.6 总结 406 第21章 asp.net网站的性能优化 407 21.1 程序编码优化 407 21.1.1 集合操作 407 21.1.2 字符串连接优化 410 21.1.3 类型转换优化 ...

    ASP.NET4高级程序设计(第4版) 3/3

    此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  ...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  ...

    ASP.net技术内幕

    内容包括:ASP.NET Web表单的使用,高级ASP.NET页面的开发,ADO.NET的使用,ASP.NET应用程序的使用, ASP.NET应用程序的保护,ASP.NET Web服务的建立,.NET框架的利用,自定义的ASP.NET控件的建立,ASP.NET的应用...

    java源码包---java 源码 大量 实例

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    asp.net技术内幕(2)

    21.2.2 申请服务器证书 21.2.3 安装服务器证书 21.3 在ASP.NET页面中使用SSL 21.4 使用.NET加密类 21.4.1 使用散列算法 21.4.2 使用对称加密算法 21.4.3 使用不对称加密 21.5 小结 ...

    asp.net技术内幕(5)

    21.2.2 申请服务器证书 21.2.3 安装服务器证书 21.3 在ASP.NET页面中使用SSL 21.4 使用.NET加密类 21.4.1 使用散列算法 21.4.2 使用对称加密算法 21.4.3 使用不对称加密 21.5 小结 ...

    asp.net技术内幕(4)

    21.2.2 申请服务器证书 21.2.3 安装服务器证书 21.3 在ASP.NET页面中使用SSL 21.4 使用.NET加密类 21.4.1 使用散列算法 21.4.2 使用对称加密算法 21.4.3 使用不对称加密 21.5 小结 ...

    asp.net技术内幕(3)

    21.2.2 申请服务器证书 21.2.3 安装服务器证书 21.3 在ASP.NET页面中使用SSL 21.4 使用.NET加密类 21.4.1 使用散列算法 21.4.2 使用对称加密算法 21.4.3 使用不对称加密 21.5 小结 ...

Global site tag (gtag.js) - Google Analytics