用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 );

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值