基于RSA的加密/解密示例C#代码

基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码/**//*
基于RSA的加密/解密示例C#代码 * 基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码 * (采用字符串作为参数)RSA_Demo2
基于RSA的加密/解密示例C#代码 * 
基于RSA的加密/解密示例C#代码 * 夏春涛 Email:xChuntao@163.com 
基于RSA的加密/解密示例C#代码 * Blog:
http://bluesky521.cnblogs.com
基于RSA的加密/解密示例C#代码 * 运行环境:.net2.0 framework
基于RSA的加密/解密示例C#代码 * 
基于RSA的加密/解密示例C#代码 * 备注:
基于RSA的加密/解密示例C#代码 * 不对称算法通常用于加密少量数据,如加密对称密钥和 IV。通常,
基于RSA的加密/解密示例C#代码 * 执行不对称加密的个人使用由另一方生成的公钥。.NET Framework 
基于RSA的加密/解密示例C#代码 * 为此目的而提供了 RSACryptoServiceProvider 类。
基于RSA的加密/解密示例C#代码 
*/

基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码
using System;
基于RSA的加密/解密示例C#代码
using System.Security.Cryptography;
基于RSA的加密/解密示例C#代码
using System.Text;
基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码
class RSACSPSample
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码    
static void Main()
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码    
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码        
try
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码        
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码            
string str_Plain_Text = "How are you?How are you?How are you?How are you?=-popopolA";
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"明文:" + str_Plain_Text);
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"长度:" + str_Plain_Text.Length.ToString());
基于RSA的加密/解密示例C#代码            Console.WriteLine();
基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码            RSACryptoServiceProvider RSA 
= new RSACryptoServiceProvider();
基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码            
string str_Public_Key;
基于RSA的加密/解密示例C#代码            
string str_Private_Key;
基于RSA的加密/解密示例C#代码            
string str_Cypher_Text = RSA_Encrypt(str_Plain_Text, out str_Public_Key,out str_Private_Key);
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"密文:" + str_Cypher_Text);
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"公钥:" + str_Public_Key);
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"私钥:" + str_Private_Key);
基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码            
string str_Plain_Text2 = RSA_Decrypt(str_Cypher_Text, str_Private_Key);
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"解密:" + str_Plain_Text2);
基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码            Console.WriteLine();
基于RSA的加密/解密示例C#代码        }

基于RSA的加密/解密示例C#代码        
catch (ArgumentNullException)
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码        
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码            Console.WriteLine(
"Encryption failed.");
基于RSA的加密/解密示例C#代码        }

基于RSA的加密/解密示例C#代码    }

基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码    
//RSA加密,随机生成公私钥对并作为出参返回
基于RSA的加密/解密示例C#代码
    static public string RSA_Encrypt(string str_Plain_Text, out string str_Public_Key, out string str_Private_Key)
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码    
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码        str_Public_Key 
= "";
基于RSA的加密/解密示例C#代码        str_Private_Key 
= "";
基于RSA的加密/解密示例C#代码        UnicodeEncoding ByteConverter 
= new UnicodeEncoding();
基于RSA的加密/解密示例C#代码        
byte[] DataToEncrypt = ByteConverter.GetBytes(str_Plain_Text);
基于RSA的加密/解密示例C#代码        
try
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码        
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码            RSACryptoServiceProvider RSA 
= new RSACryptoServiceProvider();
基于RSA的加密/解密示例C#代码            str_Public_Key 
= Convert.ToBase64String(RSA.ExportCspBlob(false));
基于RSA的加密/解密示例C#代码            str_Private_Key 
= Convert.ToBase64String(RSA.ExportCspBlob(true));
基于RSA的加密/解密示例C#代码           
基于RSA的加密/解密示例C#代码            
//OAEP padding is only available on Microsoft Windows XP or later.  
基于RSA的加密/解密示例C#代码
            byte[] bytes_Cypher_Text = RSA.Encrypt(DataToEncrypt, false);
基于RSA的加密/解密示例C#代码            str_Public_Key 
= Convert.ToBase64String(RSA.ExportCspBlob(false));
基于RSA的加密/解密示例C#代码            str_Private_Key 
= Convert.ToBase64String(RSA.ExportCspBlob(true));
基于RSA的加密/解密示例C#代码            
string str_Cypher_Text = Convert.ToBase64String(bytes_Cypher_Text);
基于RSA的加密/解密示例C#代码            
return str_Cypher_Text;
基于RSA的加密/解密示例C#代码        }

基于RSA的加密/解密示例C#代码        
catch (CryptographicException e)
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码        
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码            Console.WriteLine(e.Message);
基于RSA的加密/解密示例C#代码            
return null;
基于RSA的加密/解密示例C#代码        }

基于RSA的加密/解密示例C#代码    }

基于RSA的加密/解密示例C#代码
基于RSA的加密/解密示例C#代码    
//RSA解密
基于RSA的加密/解密示例C#代码
    static public string RSA_Decrypt(string str_Cypher_Text, string str_Private_Key)
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码    
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码        
byte[] DataToDecrypt = Convert.FromBase64String(str_Cypher_Text);
基于RSA的加密/解密示例C#代码        
try
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码        
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码            RSACryptoServiceProvider RSA 
= new RSACryptoServiceProvider();
基于RSA的加密/解密示例C#代码            
//RSA.ImportParameters(RSAKeyInfo);
基于RSA的加密/解密示例C#代码
            byte[] bytes_Public_Key = Convert.FromBase64String(str_Private_Key);
基于RSA的加密/解密示例C#代码            RSA.ImportCspBlob(bytes_Public_Key);
基于RSA的加密/解密示例C#代码            
基于RSA的加密/解密示例C#代码            
//OAEP padding is only available on Microsoft Windows XP or later.  
基于RSA的加密/解密示例C#代码
            byte[] bytes_Plain_Text = RSA.Decrypt(DataToDecrypt, false);
基于RSA的加密/解密示例C#代码            UnicodeEncoding ByteConverter 
= new UnicodeEncoding();
基于RSA的加密/解密示例C#代码            
string str_Plain_Text = ByteConverter.GetString(bytes_Plain_Text);
基于RSA的加密/解密示例C#代码            
return str_Plain_Text;
基于RSA的加密/解密示例C#代码        }

基于RSA的加密/解密示例C#代码        
catch (CryptographicException e)
基于RSA的加密/解密示例C#代码基于RSA的加密/解密示例C#代码        
基于RSA的加密/解密示例C#代码{
基于RSA的加密/解密示例C#代码            Console.WriteLine(e.ToString());
基于RSA的加密/解密示例C#代码            
return null;
基于RSA的加密/解密示例C#代码        }

基于RSA的加密/解密示例C#代码    }

基于RSA的加密/解密示例C#代码}

基于RSA的加密/解密示例C#代码
备注:经测试明文长度超过58时会出现异常.
源码附件:/Files/bluesky521/RSA_Demo.rar

上一篇:重载操作符[]


下一篇:java中栈Stack类操作