您的位置:首页 > 编程语言 > C#

用C#实现RSA加密的一个小例子

2007-09-28 09:30 447 查看
整个算法的流程是:

接收方先同时生成公钥和私钥, 再把公钥传递给发送方, 发送方收到公钥后, 用此公钥将自己的明文加密, 然后将加密后的密文传递给接收方, 接收方用自己的私钥解密得到明文. 以下是演示这个过程的示例代码:

//待加密的明文

string originText="Hello";

//公钥

string publicKey;

System.Security.Cryptography.RSACryptoServiceProvider rsaReceive =

new System.Security.Cryptography.RSACryptoServiceProvider();

System.Security.Cryptography.RSACryptoServiceProvider rsaSend =

new System.Security.Cryptography.RSACryptoServiceProvider();

//接收方先生成公钥, 并将此公钥公开

//参数false 表示只生成公钥, 如果为true, 则同时生成公钥和私钥.

publicKey = rsaReceive.ToXmlString(false);

//发送方接收公钥, 并用此公钥加密数据

rsaSend.FromXmlString(publicKey);

//发送方执行加密.

//第二个参数指示是否使用OAEP, 如果使用, 则程序必须运行在Windows XP 及以上版本的

//系统中. 无论true 或false, 解密时必须跟加密时的选择相同.

byte[] cryp = rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(originText),false);

//接收方用自己的私钥解密

byte[] b_OriginText = rsaReceive.Decrypt(cryp, false);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: