对字符串加密,解密
字符串中含有中文,日文,英文字符等   
 谢谢!!
------解决方案--------------------可以用DSA和RSA,如:   
 using System;   
 using System.Text;   
 using System.Security.Cryptography;   
 class dsacrypto_SignData {   
 public static void Main(String[] args){   
 //先要将字符串转换为字节数组,这与编码有关。   
 String str =  "this is a test. ";   
 byte[] bytes = Encoding.ASCII.GetBytes(str);   
 //选择签名方式,有RSA和DSA   
 DSACryptoServiceProvider dsac = new DSACryptoServiceProvider();   
 byte[] sign = dsac.SignData(bytes);   
 //sign便是出来的签名结果。   
 //下面是认证了   
 DSACryptoServiceProvider dsac2 = new DSACryptoServiceProvider();   
 dsac2.FromXmlString(dsac.ToXmlString(false));   
 bool ver = dsac2.VerifyData(bytes, sign);   
 if (ver) {   
 Console.WriteLine( "通过 ");   
 } else {   
 Console.WriteLine( "不能通过 ");   
 }   
 }   
 } 
------解决方案--------------------/*  
   Filename: encrypt_string.cs 
   Fuction : input a strig  and encrypt a string  
             加密后的字符串的第一个字符是原先字符串的最后一个字符, 
             其余的每一个字符是对应的原字符串中的前一个字符的值加 
             上3。 
             example: welcome ->  ezhofrp            
 */ 
 using System;   
 class Test 
 { 
  public static void Main() 
  { 
   string strInput, strOutput;     
   Console.WriteLine( "please input a string to encrypt: \n "); 
   strInput=Console.ReadLine();       
   Console.WriteLine( " your input string is : {0}\n ", strInput); 
    //Encrypt(strInput);     
   strOutput = Encrypt(strInput);    
    Console.WriteLine( "strOutput is :{0}\n ", strOutput); 
  }     
   private static string  Encrypt(string  strInput) 
   { 
    string strFont,  strEnd; 
    string strOutput; 
    char[] charFont; 
    int i,len, intFont;      
    len = strInput.Length; 
    //Console.WriteLine( " strInput  's length is :{0} \n ", len); 
    strFont = strInput.Remove(len-1,1);                                  
    strEnd= strInput.Remove(0, len-1);                                                                    
    //Console.WriteLine( " strFont is : {0} \n " , strFont);                                  
    //Console.WriteLine( " strEnd is : {0} \n " , strEnd);                                                                     
      charFont = strFont.ToCharArray();                                  
    for(i=0; i <strFont.Length; i++)                                  
    {                                  
     intFont = (int)charFont[i] + 3;                                  
     //Console.WriteLine( " intFont is : {0} \n ", intFont);                                                                         
     charFont[i]= Convert.ToChar(intFont);                                    
     //Console.WriteLine( "charFont[{0}] is : {1}\n ", i, charFont[i]);                                  
    } 
      strFont =  " "; //let strFont  null 
    for (i=0; i <charFont.Length; i++) 
    { 
       strFont += charFont[i]; 
     }  
      strOutput=strEnd + strFont; 
      return strOutput;      
   } 
 }