简单的使用.NET非对称加密算法的例子

usingSystem;

usingSystem.IO;

usingSystem.Text;

usingSystem.Security.Cryptography;

///<summary>

///一个简单的使用.NET非对称加密算法的例子

///本例的程序很简单,仅用于说明如何在.NET里面使用非对称(RSA)算法。

///Kwanhong2005.9

///</summary>

classClass1

{

publicstaticvoidMain(string[]args)

{

Class1c=newClass1();

c.StartDemo();

}

publicvoidStartDemo()

{

//RSA的加解密过程:

//有rsa1和rsa2两个RSA对象。

//现在要rsa2发送一段信息给rsa1,则先由rsa1发送“公钥”给rsa2

//rsa2获取得公钥之后,用来加密要发送的数据内容。

//rsa1获取加密后的内容后,用自己的私钥解密,得出原始的数据内容。

RSACryptoServiceProviderrsa1=newRSACryptoServiceProvider();

RSACryptoServiceProviderrsa2=newRSACryptoServiceProvider();

stringpublickey;

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

stringplaintext;

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(inti=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();

}

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值