高山流水

衣带渐宽终不悔,为依(.NET)消得人憔悴!

转载  用C#实现RSA加密的一个小例子 收藏

 
 

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

           

 //待加密的明文
            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);

 

发表于 @ 2008年08月28日 09:54:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:关于程序集生成失败 -- 引用的程序集没有强名称的解决办法 | 新一篇:构建安全的 ASP.NET 网页和控件

  • 发表评论
  • 评论内容:
  •  
Copyright © 46539492
Powered by CSDN Blog