字符串中含有中文,日文,英文字符等谢谢!!

解决方案 »

  1.   

    可以用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和DSADSACryptoServiceProvider 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("不能通过");}}}
      

  2.   

    /* 
      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;
       
      }
    }
      

  3.   

    结了吧
    godgreat给的第一种答案应当说与我要的关系不是很大。我要的是你认证过后的后一过程。第二个答案,我没有去试,但感觉有可能不太行。对于中文字符或日文字符值加3?
    希望能明白说明原理不过还是谢谢了!昨天自己写的,今天居然就可以了。
    哈哈
      

  4.   

    结了吧
    godgreat给的第一种答案应当说与我要的关系不是很大。我要的是你认证过后的后一过程。第二个答案,我没有去试,但感觉有可能不太行。对于中文字符或日文字符值加3?
    希望能明白说明原理不过还是谢谢了!昨天自己写的,今天居然就可以了。
    哈哈